在使用属于很多关系时,我似乎无法获得我的枢轴关系!我的结构看起来像这样
user Model
class Users extends Model
{
protected $table = 'users';
public function contacts(){
return $this->belongsToMany('App\Models\Contacts', 'user_contacts', 'user_id', 'contact_id');
}
}
contacts Model
class Contacts extends Model
{
protected $table = 'contacts';
}
user_contacts Table
id | user_id | contact_id
1 | 1 | 1
users Table
id | Name
1 | Jim Bliggs
contacts Table
id | Name | Telephone
1 | Joe Bloggs | 0 111 1111
我可以像这样保存关系
$user->contacts()->save($newContact);
但每当我试图让用户的所有联系人像这样循环通过它们
$users = Users::all();
dd($users->contacts);
它只是回来了
此集合实例上不存在[联系人]属性 .
对不起,如果它是一个简单的问题,但我无法理解我如何使用这种关系创建,但我无法阅读?
2 回答
将返回用户集合,您需要循环访问用户,以获取其关联的联系人
要缓解N 1查询问题,您可以eager load用户的联系人
您应该在Contact模型上定义反向:
要访问用户联系人,您需要循环收集: