gpt4 book ai didi

Laravel HasMany 创建子记录

转载 作者:行者123 更新时间:2023-12-02 12:04:12 26 4
gpt4 key购买 nike

当我尝试创建与其父模型关联的子模型时遇到问题。

我有 2 个模型:

  • 机构(有很多地址)
  • 地址(有 1 个机构)

当我单击一个机构并转到 show.blade.php 时,我有一个表单可以为该机构创建地址,但我无法从请求中获取将子项与父项关联起来的“instituion_id”字段。

这显示在请求中:

请求数据

enter image description here

从表单中,我调用以下路由:action="/institution/{{ $institution->id }}/addresses"

这是AddressController中的代码:

public function store(Request $request)
{
// dd($request->all());
Address::create($request->all());
return back();
}

当我测试它时,数据库询问 istitution_id 列:

SQLSTATE[HY000]: General error: 1364 Field 'institution_id' doesn't have a default value (SQL: insert into addresses (address_name, address_number, address_full_name, address_city, address_state, address_postal_code, address_country, updated_at, created_at) values (a, a, a, a, a, a, a, 2017-12-14 14:06:47, 2017-12-14 14:06:47))

那么,如何从表单传递字段“institution_id”以及如何将其获取到 Controller 中并关联到子记录?

我读了很多帖子,但在所有帖子中,它们都只是创建一个包含一个字段的子记录,但我想处理包含所有地址字段的完整请求。

问候

最佳答案

您可以从 store 方法的参数访问 id,如下所示:

在路由文件中:

Route::post('/institution/{institution_id}/addresses', 'YourController@store')

在 Controller 中:

public function store($institution_id, Request $request)
{
$request->request->add(['institution_id' => $institution_id]);
// dd($request->all());
Address::create($request->all());
return back();
}

Ps:不要忘记将 institution_id 添加到地址模型中的可填写字段中。

关于Laravel HasMany 创建子记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47815347/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com