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

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

阅读 4.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列表查询用户信息
推荐问题