当前位置:首页 > CMS教程 > 其它CMS > 列表

laravel model 两表联查示例

发布:smiling 来源: PHP粉丝网  添加日期:2022-01-17 09:56:55 浏览: 评论:0 

今天小编就为大家分享一篇laravel model 两表联查示例,具有很好的参考价值,希望对大家有所帮助,一起跟随小编过来看看吧。

1对一

定义一对一关联

一对一关联是很基本的关联,例如一个 User 模型会对应到一个 Phone,在 Eloquent 里可以像下面这样定义关联:

  1. class User extends Model { 
  2.    
  3.  public function phone() 
  4.  { 
  5.   return $this->hasOne('App\Phone'); 
  6.  } 
  7.    

传到 hasOne 方法里的第一个参数是关联模型的类名称,定义好关联之后,就可以使用 Eloquent 的动态属性取得关联对象:

$phone = User::find(1)->phone;

SQL 会执行如下语句:

select * from users where id = 1

select * from phones where user_id = 1

注意, Eloquent 假设对应的关联模型数据库表里,外键名称是基于模型名称。在这个例子里,默认 Phone 模型数据库表会以 user_id 作为外键,如果想要更改这个默认,可以传入第二个参数到 hasOne 方法里,更进一步,您可以传入第三个参数,指定关联的外键要对应到本身的哪个字段:

return $this->hasOne('App\Phone', 'foreign_key');

return $this->hasOne('App\Phone', 'foreign_key', 'local_key');

查询多条

  1. $rolePermissions = Permission::join('permission_role''permission_role.permission_id''=''permissions.id'
  2.   ->where('permission_role.role_id'$id
  3.   ->get();

Tags: laravel model 两表联查

分享到: