老莫的笔记本  
  
查看: 1144|回复: 0

TP5.0 一对一关联查询 查询自身报错

[复制链接]

662

主题

878

帖子

5133

积分

超级版主

Rank: 8Rank: 8

积分
5133
发表于 2019-1-7 17:21:12 | 显示全部楼层 |阅读模式
  1. // 关于1对1 数据库关联查询的使用
  2. // 第一步: 先去在 相关模型【比方说菜单】中添加
  3. //  public function profile()
  4. //     {
  5. //         return $this->hasOne('所关联的模型','id','gid')->field('id,输出的数据,gid');
  6. //     }
  7. //     
  8. //  然后在控制器中使用:、
  9. //          // $m = Companys::get(7);
  10.         // var_dump($m->profile->title)
  11. // 已知我 单个使用是正确的,但是查到结果foreach循环后却是错的?
  12. // 好嘛 我明白了, 原来是 当 没对应上的时候, 就报错了
  13. //
  14. // 最后加了一个判断
  15. $count = Db::name('companys')->where($map)->count();
  16.         $list = Companys::order('status asc')->where($map)->limit($binLimit,$limit)->select();
  17.         foreach($list as $key => $value)
  18.         {
  19.             if($value->gid !== 0){
  20.                 $value['gid'] = $value->profile->title;
  21.             }else{
  22.                 $value['gid'] = '无            }
  23.         }
复制代码

model/Companys.php
  1. <?php
  2. namespace app\index\model;
  3. use think\Model;
  4. //机构表
  5. class Companys extends Model
  6. {
  7.     // 关联自身
  8.     public function profile()
  9.     {
  10.         return $this->hasOne('companys','id','gid')->field('id,title,gid');
  11.     }
  12. }
复制代码

不需要在数据库上建外键,代码里建就行
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表