php - 属性 [] 不存在于属于多个枢轴关系
问题描述
使用属于多个关系时,我似乎无法获得我的支点关系!我的结构看起来像这样
用户模型
class Users extends Model
{
protected $table = 'users';
public function contacts(){
return $this->belongsToMany('App\Models\Contacts', 'user_contacts', 'user_id', 'contact_id');
}
}
联系人型号
class Contacts extends Model
{
protected $table = 'contacts';
}
user_contacts 表
id | user_id | contact_id
1 | 1 | 1
用户表
id | Name
1 | Jim Bliggs
联系人表
id | Name | Telephone
1 | Joe Bloggs | 0 111 1111
我可以像这样保存使用关系
$user->contacts()->save($newContact);
但是每当我尝试让用户的所有联系人像这样循环遍历它们时
$users = Users::all();
dd($users->contacts);
它只是返回
此集合实例上不存在属性 [Contacts]。
抱歉,如果这是一个简单的问题,但我不明白如何使用这种关系创建但我看不懂?
解决方案
您应该在 Contact 模型上定义逆:
class Contacts extends Model
{
protected $table = 'contacts';
public function users(){
return $this->belongsToMany('App\Models\Users', 'user_contacts', 'contact_id', 'user_id');
}
}
要访问用户联系人,您需要循环收集:
foreach ($users as $user) {
// $user->contacts
}
// using higher order proxy
$users->each->contacts
推荐阅读
- makefile - 在一个 Makefile 中创建两个可执行文件
- python - Python 3.6 inspect.signature() 不显示参数
- html - 如何创建像苹果一样的导航栏?
- reactjs - 如何在 create-react-app-project 中将 Babel 选项紧凑设置为 false 而不会弹出?
- qt - 将 quint64 转换为 qstring,反之亦然
- peoplesoft - 如何仅在 App Engine PeopleCode 的 Datetime 字段中评估日期
- reactjs - Typescript + React:按位 & 和 Props
- python - 如何使用 pandas 对时间序列数据进行重采样
- c# - 记录来自 Azure SDK for .Net 的请求/响应
- javascript - 如何在javascript中查找特定表数据的行值