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

查看:360
本文介绍了laravel ORM 一对一 一对多 多对多 原生的MYSQL怎么写?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

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

解决方案

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列表查询用户信息

这篇关于laravel ORM 一对一 一对多 多对多 原生的MYSQL怎么写?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆