参数作为字段的名称而不是值进入数组
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了参数作为字段的名称而不是值进入数组相关的知识,希望对你有一定的参考价值。
What am I trying to achieve?
我有“任务”,每个任务可以有多个“注释”,因此当您选择一个任务并单击注释时,它会将您带到一个页面,其中包含您单击的任务的所有注释。
每个音符都有一个名为“task_id”的字段,所以我的问题是将此task_id传递给音符。
我试图在备注表单上传递它:
<form method="POST" action="{{route('notes.store',$task)}}">
@include('notes.form')
</form>
它进入我的控制器
public function store(Request $r)
{
$validatedData = $r->validate([
'note' => 'required',
]);
$r['created_by'] = Auth::user()->user_id;
return $r;
/*
$note = Note::create($r->all());
return redirect('/notes')->with('store');
*/
}
但我回来看它是怎么回事,我得到了这个:
{"_token":"OmGrbYeQDl35oRnmewrVraCT0SHMC16wE4gD56nl","note":"363","created_by":4,"8":null}
最后的8实际上是正确的任务ID,但它显示为名称而不是值。可能是什么导致了这个?
这是我的表单视图:
@csrf
<div class="col">
<div class="form-group">
<input type="text" class="form-control" name="note">
</div>
</div>
<div class="col-10">
<div class="form-group">
<button class="btn btn-success" type="submit">Add note</button>
<br><br>
</div>
</div>
这些是我的路线:
Route::get('/tasks/{task}/notes', ['as' => 'tasks.notes', 'uses' => 'NoteController@index']);
Route::get('/projects/{project}/tasks', ['as' => 'projects.tasks', 'uses' => 'ProjectController@seeTasks']);
Route::get('/projects/results','ProjectController@filter');
Route::get('/tasks/results','TaskController@filter');
Route::resource('projects','ProjectController');
Route::resource('clients','ClientController');
Route::resource('tasks','TaskController');
Route::resource('users','UserController');
Route::resource('notes','NoteController');
答案
您正在尝试将task_id
作为路径参数传递,但您的notes.store
路线没有路线参数。
Verb Path Action Route Name
POST /notes store notes.store
将task_id
添加为隐藏输入应该正确发送请求:
<form method="POST" action="{{ route('notes.store') }}">
<input type="hidden" name="task_id" value="{{ $task->id }}">
@include('notes.form')
</form>
以上是关于参数作为字段的名称而不是值进入数组的主要内容,如果未能解决你的问题,请参考以下文章
javascript 收集输入字段数据并使用key作为输入名称和值作为输入值构建json。提供HTML表单作为参数