当我尝试创建与其父级关联的子模型时遇到问题。
我有 2 个型号:
当我单击一个机构并转到 show.blade.php 时,我有一个表单可以为该机构创建地址,但我无法从请求中获取将子项与父项相关联的字段“instituion_id”。
这在请求中显示:
请求数据
从表单中,我调用以下路由:action="/institution/{{ $institution->id }}/addresses"
这是AddressController中的代码:
public function store(Request $request)
{
// dd($request->all());
Address::create($request->all());
return back();
}
Run Code Online (Sandbox Code Playgroud)
当我测试它时,数据库询问 istitution_id 列:
SQLSTATE [ HY000]:一般错误:1364 字段“institution_id ”没有默认值(SQL:插入(
addresses
、、、、、、、、、、、)值(aaddress_name
、 a 、 a、a、a、a、a , 2017-12-14 14:06:47, 2017-12-14 14:06:47))address_number
address_full_name
address_city
address_state
address_postal_code
address_country
updated_at
created_at
那么,如何从表单传递字段“institution_id”以及如何将其获取到控制器中并将其关联到子记录?
我读了很多帖子,但在所有帖子中,它们都只是创建一个包含一个字段的子记录,但我想处理包含所有地址字段的完整请求。
问候
我是这样做的。我有 2 个模型/控制器:网站和访客。访问者依赖于网站。
路线:
Route::resource('website', 'WebsiteController');
Route::resource('website/{website}/visitor', 'VisitorController');
Run Code Online (Sandbox Code Playgroud)
不要忘记设置所有关系。我只会向您展示在网站模型中用于保存数据的模型:
public function visitors()
{
return $this->hasMany('App\Visitor');
}
Run Code Online (Sandbox Code Playgroud)
然后,在 VisitorController 内的 store 中:
public function store(Request $request, Website $website)
{
return response()->json(
$website->visitors()->create([
... fields without website_id (the relationship field) ...
]),
201
);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6065 次 |
最近记录: |