Я использую laravel 5.7 и одну форму для вставки и обновления.В действии формы я хочу использовать @yield () для маршрута laravel, чтобы получить идентификатор для обновления.Все хорошо, но я не могу использовать метод @yield ().Вот мой код, проблема только в действии формы.
<form class="form-horizontal" action="{{ url('/todo/@yield('editId')') }}" method="post">
{{csrf_field()}}
@section('editMethod')
@show
<fieldset>
<div class="form-group">
<div class="col-lg-10">
<input type="text" name="title" placeholder="Title" value="@yield('editTitle')" class="form-control">
</div>
</div>
<div class="form-group">
<div class="col-lg-10">
<textarea class="form-control" placeholder="Body" name="body" rows="5" id="textarea">@yield('editBody')</textarea>
<br>
<button type="submit" class="btn btn-success">Submit</button>
</div>
</div>
</fieldset>
</form>
Я также проверил одинарные и двойные кавычки.
action="/todo/@yield('editid')"
Когда я использую простой этот метод, то послеотправив его, вы перенаправляете меня на localhost и страница с ошибкой не найдена.В laravel 5.4 это работает.но не на уровне 5,7.Любая помощь будет признательна Спасибо
Вот мой edit.blade.php, откуда я использую @section и @ yield
@extends('Todo.create')
@section('editId',$item->id)
@section('editTitle',$item->title)
@section('editBody',$item->body)
@section('editMethod')
{{ method_field("PUT") }}
@endsection
Методы редактирования и обновления хранилища контроллеров
public function store(Request $request)
{
$todo = new todo;
$this->validate($request,[
'body'=>'required',
'title'=>'required|unique:todos',
]);
$todo->body = $request->body;
$todo->title = $request->title;
$todo->save();
return redirect("todo");
}
public function edit($id)
{
$item = todo::find($id);
return view("Todo.edit",compact('item'));
}
public function update(Request $request, $id)
{
$todo = todo::find($id);
$this->validate($request,[
'body'=>'required',
'title'=>'required',
]);
$todo->body = $request->body;
$todo->title = $request->title;
$todo->save();
return redirect("/todo");
}