私には「タスク」があり、各タスクには複数の「メモ」を含めることができるため、タスクを選択してメモをクリックすると、クリックしたタスクのすべてのメモが記載されたページに移動します。
各メモには「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>
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加