|
- // 关于1对1 数据库关联查询的使用
- // 第一步: 先去在 相关模型【比方说菜单】中添加
- // public function profile()
- // {
- // return $this->hasOne('所关联的模型','id','gid')->field('id,输出的数据,gid');
- // }
- //
- // 然后在控制器中使用:、
- // // $m = Companys::get(7);
- // var_dump($m->profile->title)
- // 已知我 单个使用是正确的,但是查到结果foreach循环后却是错的?
- // 好嘛 我明白了, 原来是 当 没对应上的时候, 就报错了
- //
- // 最后加了一个判断
- $count = Db::name('companys')->where($map)->count();
- $list = Companys::order('status asc')->where($map)->limit($binLimit,$limit)->select();
- foreach($list as $key => $value)
- {
- if($value->gid !== 0){
- $value['gid'] = $value->profile->title;
- }else{
- $value['gid'] = '无 }
- }
复制代码
model/Companys.php- <?php
- namespace app\index\model;
- use think\Model;
- //机构表
- class Companys extends Model
- {
- // 关联自身
- public function profile()
- {
- return $this->hasOne('companys','id','gid')->field('id,title,gid');
- }
- }
复制代码
不需要在数据库上建外键,代码里建就行
|
|