У меня есть две формы: создание и редактирование записи. Я пытаюсь их объединить в одну, как это правильно сделать? У меня получилось с присвоением в котнроллере переменной для каждого метода, и в представлении я просто проверял какой метод вызван. А как сделать с проверкой содержимого - если есть запись, вызывается метод Edit, если записи нет, то Create?
Controller:
public function create() {
return view('admin.categories.create');
}
public function edit($id) {
$cat = Category::find($id);
return view('admin.categories.create', compact('cat'));
}
Предстовление:
<form action="{{ ($cat->title > 0 ? route('category.store') : route('category.update', ['id'=>$cat->id])) }}" method="post" enctype="multipart/form-data">
@csrf
@if ($cat->title > 0)
@method('PATCH')
@endif
<div class="form-group">
<label for="cat_id">Категория</label>
{{$cat->tite ?? ''}}
</div>
<div class="form-group">
<input name="category[title]" type="text" class="form-control" required value="{{ $cat->title ?? ''}}">
</div>
<input type="submit" value="Создать" class="btn btn-outline-success">
</form>
В этой реализации ошибка, т.к. при методе Create я не передаю переменные и он ругается что их нет.