修改模型User:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
/**
* Class User
* @package App\Models
* @mixin \Eloquent
*/
class User extends Model
{
/**
* 用户角色
*/
public function roles()
{
//return $this->belongsToMany('App\Models\Role');
return $this->belongsToMany('App\Models\Role')->withPivot('username');
}
}
测试代码如下:
$user = User::find(1); foreach ($user->roles as $role) echo $role->pivot->username;//对应输出为:马特马特2马特3
如果你想要你的 pivot 表自动包含created_at 和 updated_at 时间戳,在关联关系定义时使用 withTimestamps 方法:
return $this->belongsToMany('App\Models\Role')->withTimestamps();
通过中间表字段过滤关联关系
你还可以在定义关联关系的时候使用 wherePivot 和 wherePivotIn 方法过滤belongsToMany 返回的结果集:
return $this->belongsToMany('App\Models\Role')->withPivot('username')->wherePivot('username', '马特2');
//return $this->belongsToMany('App\Models\Role')->wherePivotIn('role_id', [1, 2]);
测试代码如下:
$user = User::find(1); print_r($user->roles->toArray());
以上对应输出:
Array
(
[0] => Array
(
[id] => 3
[name] => 军长
[created_at] => 2017-06-14 10:38:57
[updated_at] => 2017-06-15 10:39:01
[pivot] => Array
(
[user_id] => 1
[role_id] => 3
[username] => 马特2
)
)
)
如果你想要你的pivot表自动包含created_at和updated_at时间戳,在关联关系定义时使用withTimestamps方法:
return $this->belongsToMany('App\Models\Role')->withTimestamps();
以上所述是小编给大家介绍的PHP laravel中的多对多关系实例详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
PHP有序表查找之插值查找算法示例这篇文章主要介绍了PHP有序表查找之插值查找算法,简单分析了插值查找算法的概念、原理并结合实例形式分析了php实
ThinkPHP整合datatables实现服务端分页的示例代码下面小编就为大家分享一篇ThinkPHP整合datatables实现服务端分页的示例代码,具有很好的参考价值,希望对大家有所帮
PHP实现APP微信支付的实例讲解下面小编就为大家分享一篇PHP实现APP微信支付的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小
PHP实现的多维数组排序算法分析这篇文章主要介绍了PHP实现的多维数组排序算法,结合实例形式对比分析了php针对多维数组及带有键名的多维数组进行
php+ajax实现无刷新文件上传功能(ajaxuploadfile)这篇文章主要为大家详细介绍了php结合ajaxuploadfile实现无刷新文件上传功能,具有一定的参考价值,感兴趣的小伙伴们
PHP的RSA加密解密方法以及开发接口使用本篇文章给大家详细介绍了PHP开发接口使用RSA进行加密解密方法,对此有兴趣的朋友可以学习下。