我是Stack Overflow和Laravel的新手。
我尝试在Laravel中开发一个变量配置文件系统,我有3个表(' User',' User_Fields',' Fields')。
User
表是Laravel 5附带的标准表
现在我希望从user_fields
获取所有字段,具体取决于选择或登录的user
。如果user_field
不存在,则模型应返回{{ 1}}或为null
创建新记录。
我尝试了很多"解决方案"与(user_field
,hasManyThrough
)一样雄辩,但我没有得到我想要的结果。
关系方法有解决方案吗?
感谢您的帮助,抱歉我的英文不好:/
答案 0 :(得分:0)
您应该使用belongsToMany()->withPivot()
至retrieve the intermediate table columns。您的user_fields
是您的数据透视表,因此您应该拥有以下用户模型:
class User extends Model
{
public function fields()
{
return $this->belongsToMany(Field::class, 'user_fields')->withPivot('value');
}
}
然后,您可以通过以下方式访问用户的值:
$user = User::find($id);
foreach($user->fields as $field) {
$field->pivot->value;
}