想象一下用户 - 模型与一个 Phone - 模型相关联,作为Eloquent Relationships定义的一对一关系,这意味着用户 -model具有以下功能:
/**
* Get the phone record associated with the user.
*/
public function phone()
{
return $this->hasOne('App\Phone');
}
虽然手机 -model有一个功能:
/**
* Get the user that owns the phone.
*/
public function user()
{
return $this->belongsTo('App\User');
}
现在的问题是如何在 Backpack for Laravel 中制作一个CRUD控制器,这样就可以在 Phone 中添加一个新的用户 >也以相同的CRUD添加/编辑形式提供。
添加电话资源然后添加用户资源似乎是标准的,其中有一个选择字段,您可以在其中选择现有的电话资源,但我尝试使用新电话添加新用户在一个CRUD控制器中,同时编辑用户,同时编辑他的电话。
以下是两个如何展示的示例: Illustration of Backpack Add-form for a User-model with a one-to-one relation to the Phone-model
我希望这是有道理的。
编辑:看来使用当前版本的Backpack for Laravel是不可能的,但是添加此功能的工作正在进行中:Github - Feature 1 to 1 relationships #865答案 0 :(得分:1)
只需编写updateCrud和storeCrud函数并编写自己的逻辑。这是非常简单的编写逻辑。您只需使用其余字段更新用户,然后手动更新电话字段。
您还可以尝试将getPhoneAttribute和setPhoneAttribute添加到User模型。这些功能可以管理关系,背包永远不会知道它不仅仅是另一个属性。
这在背包中是可能的,只需要自己写一些逻辑
答案 1 :(得分:0)
有很多选择
$用户>电话() - >保存($电话)