请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

hasOne 怎么加查询条件

$userModel = User::find()->joinwith('userprofile');


$userInfo = $userModel->asArray()->one();

这样写可以调出来

$userInfo = $userModel->where(['userid'=>1])->asArray()->one();

这样写怎么就报错了 where 条件不能这样加吗?


错误提示

https://img1.sycdn.imooc.com/szimg//58b3a36400018a5716180329.jpg

正在回答

3回答

Jason 2017-02-27 13:38:37


$userInfo = $userModel->where(['web_user.userid'=>1])->asArray()->one()

0 回复 有任何疑惑可以回复我~
  • 提问者 lzk守候幸福 #1
    感谢您的耐心解决!!
    回复 有任何疑惑可以回复我~ 2017-03-01 15:00:00
  • Jason 回复 提问者 lzk守候幸福 #2
    客气,应该做的
    回复 有任何疑惑可以回复我~ 2017-03-01 17:17:03
Jason 2017-02-27 12:00:38

这是字段找不到报的错,试试web_user.userid=1

0 回复 有任何疑惑可以回复我~
提问者 lzk守候幸福 2017-02-27 12:58:04

我写的条件是是 userid=1 

为什么为查询web_user.userid=1?

关联查询应该怎么写呀?

0 回复 有任何疑惑可以回复我~
  • Jason #1
    报错是因为不知道是哪张表的userid,因为你关联了其他表
    
    回复 有任何疑惑可以回复我~ 2017-02-27 13:00:47
  • 提问者 lzk守候幸福 回复 Jason #2
    joinwith('userprofile') 这句话不是已经表明了要关联的表吗? 
    public function getUserprofile(){
            return $this->hasOne(Userprofile::className(),['userid'=>'userid']);
    }
    回复 有任何疑惑可以回复我~ 2017-02-27 13:06:33
  • Jason #3
    是,但是你后面又额外加了条件
    回复 有任何疑惑可以回复我~ 2017-02-27 13:18:53

相似问题

登录后可查看更多问答,登录/注册

问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信