在我正在处理的项目中,我有一个用户表,我有另一个表,其中包含分配给他们的项目。我使用此代码:
ErrorConstructor
在控制器I中使用此代码:
<form method="POST" action="/User/{{$user->id}}/projects">
{{csrf_field()}}
<div class="form-group">
<textarea name="name"></textarea>
</div>
<div class="form-group">
<textarea name="description" placeholder="Enter project description here"></textarea>
</div>
<div class="form-group">
<button type="submit">Add Project for User</button>
</div>
项目表有这个代码:
public function store(User $user)
{
Project::create([
'user_id ' => $user->id,
'name' => request('name'),
'description' => request('description'),
]);
return back();
}
现在,当我为用户添加项目时,我收到此错误:
public function up()
{
Schema::create('projects', function (Blueprint $table) {
$table->increments('id');
$table->integer('user_id');
$table->string('name');
$table->string('description');
$table->timestamps();
});
}
我如何解决这个问题?
答案 0 :(得分:1)
如果POST
的{{1}}路由到/User/{{$user->id}}/projects
,我认为您需要将其更新为store(User $user)
。
store($user_id)
路由只是传递当前用户的ID,而不是用户模型。
答案 1 :(得分:0)
我正在编辑我对堆叠中朋友的优惠的看法,例如
<form method="POST" action="/User/{{$user->id}}/projects">
{{csrf_field()}}
<input type="hidden" name="user_id" value="{{$user->id}}">
<div class="form-group">
<textarea name="name" placeholder="Enter project description here"></textarea>
</div>
<!--<div class="form-group">
<textarea name="description" placeholder="Enter project description here"></textarea>
</div>-->
<div class="form-group">
<button type="submit">Add Project for User</button>
</div>
编辑我的控制器,例如此代码
public function store(User $user)
{
Project::create(request(['name', 'user_id']));
return back();
}
答案 2 :(得分:-1)
发生该错误是因为未设置store方法中的$user->id
值。如果user_id
可填写,则使用隐藏输入是一种选择。
<form method="POST" action="/User/{{$user->id}}/projects">
{{csrf_field()}}
<input type="hidden" name="user_id" value="{{$user->id}}">
<div class="form-group">
<textarea name="name"></textarea>
</div>
<div class="form-group">
<textarea name="description" placeholder="Enter project description here"></textarea>
</div>
<div class="form-group">
<button type="submit">Add Project for User</button>
</div>
</form>
然后在控制器中:
public function store()
{
Project::create([
'user_id ' => request('user_id'),
'name' => request('name'),
'description' => request('description'),
]);
return back();
}