在表单中传递外键以进行编辑时出错



我有两个表,一个表名为Client,另一个表名称为Projects,通过外键链接在一起(这是Client_id,它存在于Projects中(。

每个项目都有一个编辑按钮;当我点击编辑一个项目时,我有一个所有字段都安全的表单。

要编辑一个项目,我必须传递与该项目相关联的客户端id(client_id(。

为此,我做了以下操作:

路由

Route::get('/project/edit/{project}', [ProjectController::class, 'edit'])->name('project.edit');

控制器

public function edit(Project $project)
{
$client_id = Project::select('client_id')->where('id',$project->id)->get();
//dd($client_id);
return view('project.edit', compact('project','client_id'));
}

查看

<div class="row mt-3">
<div class="col-12 col-md-6 namelabel">
<form action="{{route('project.store')}}" method="post" enctype="multipart/form-data">
@csrf
<div class="mb-3">
<input type="hidden" class="form-control" name="client_id" value="{{$client_id}}" >
</div>
<div class="mb-3">
<label for="name" class="form-label">Project name</label>
<input type="text" class="form-control" name="name" value="{{$project->name}}">
</div>
<div class="mb-3">
<div class="mb-3">
<label for="logo" class="form-label">Insert image</label>
<input type="file" name="logo">
</div>
<div class="mb-3">
<label for="project_start_date" class="form-label">Data init</label>
<input type="date" class="form-control" name="project_start_date" value="{{$project->project_start_date}}">
</div>
<label for="description" class="form-label">Description</label>
<textarea name="description" cols="30" rows="10" class="form-control">{{$project->description}}</textarea>
</div>
<button type="submit" class="btn btn-primary mb-5">Modifica progetto</button>
</form>
</div>
</div>

我得到以下错误:

第1行"client_id"列的整数值不正确:"[{quot;client_id":14}]">

我该如何解决这个问题?

感谢那些将帮助我的人

此语句

Project::select('client_id')->where('id',$project->id)->get()

不返回client_id。它返回一个只有client_id属性的Eloquent项目集合。

您可以链接pull函数以仅提取值,然后可以首先调用从集合中获取值。

Project::select('client_id')
->where('id',$project->id)
->get()
->pluck('client_id')
->first()

在检查完代码的全部细节后,您根本不需要执行选择部分
您已经有了项目模型,因此可以直接访问它的所有字段。

$project->client_id

在你看来,你已经在用项目名称做这件事了:

{{$project->name}}

您也可以对client_id执行同样的操作:

{{$project->client_id}}

最新更新