разница между
public function store(Request $request, $id)
и
public function store(Request $request, $id = 1)
является первым, не имеет значения по умолчанию (обязательно), в то время как второе имеет значение 1
(необязательно). Очевидно, верно?
Так что всякий раз, когда вы пытаетесь вызвать принадлежащий маршрут с первым примером метода контроллера с route('controller.store')
. Это вызовет ошибку, потому что не передан ни один параметр. Заключение заключается в том, чтобы передать идентификатор при его вызове, например route('controller.store', [1])
Или, если вы разрабатываете так, чтобы он вел себя как необязательный идентификатор для передачи, значит, вы делаете это правильно.
В порядке предпочтения, я немного переписываю ваш код
public function store(Request $request, $id)
{
$incase = Incase::findOrFail($id);
$this->validate($request, array(
'A' => 'required|max:200',
'B' => 'required|max:800'
));
$try = new Me();
$try->id_tableA = Auth::id();
$try->id_tableB = $incase->id;
$try->A = $request->A;
$try->B = $request->B;
$try->save();
return redirect()->route('controller.index');
}
Сначала я проверяю Incase
для идентификатора, данного из маршрута, существует ли он или нет, а затем выдает (показывает) ответ 404, если идентификатор не найден.