比方说有users和usersinfo两张表:
users有username,password,uid字段。
usersinfo有uid,email。
用ORM的话要怎么写才能达到跟原生的 where users.uid=usersinfo.uid一样?
求大神解答
比方说有users和usersinfo两张表:
users有username,password,uid字段。
usersinfo有uid,email。
用ORM的话要怎么写才能达到跟原生的 where users.uid=usersinfo.uid一样?
求大神解答
$users = DB::table('users')
->leftJoin('usersinfo', 'users.uid', '=', 'usersinfo.uid')
->get();
Model中使用$model::where()->with(['userinfo])->get(),
AppModelUser中
public function userinfo(){
$this->hasOne(UserInfo::class,'id','uid')
}
大致是这样
想要创建一个原生表达式,可以使用 DB::raw 方法
//where users.uid=usersinfo.uid
->where('users.uid', DB::raw('usersinfo.uid'))
关于join的写法可以参数前面的答案
1 回答4k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答2.2k 阅读
1 回答562 阅读✓ 已解决
782 阅读
既然你使用了ORM,那应该就是模型关联了,详见。
因为
users
和usersinfo
是一对一的关联关系,因此可以在User
的模型中如下写道: