laravel ORM 一对一 一对多 多对多 原生的MYSQL怎么写?

pokerface
  • 628

laravel ORM 一对一、一对多、多对多、原生的MYSQL怎么写?
laravel ORM 的with原理是什么?
如题

回复
阅读 3.2k
1 个回答
class User extends Model{
public function Roles()
    {
        return $this->hasOne("App\Role", 'user_id', 'id');
    }
}

class Message extends Model{
public function User()
    {
        return $this->belongsTo("App\User", 'user_id', 'id');
    }
}
//Controller 输出sql看
\DB::listen(function($sql,$binds){
    dump($sql,$binds);
});

$role = User::find(1)->Roles;//一对多类似
//select * from `users` where `id` = 1 limit 1 ;
//select * from `roles` where `user_id` = 1 limit 1 ; 

$mess = Message::with('User')->where('type',$type)->get();
//select *from messages where type=?; 查询出用户id列表
//select * from `users` where `id` in (?);根据id列表查询用户信息
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏