我有一个更新图书信息的简单表格。
<form action="{{ action('BookController@update') }}" method="POST" class="form-horizontal">
<input type="text" id="title" class="form-control" name="title" placeholder="title" value="{{ $book[0]->title }}">
<input type="text" id="author" class="form-control" name="author" placeholder="author" value="{{ $book[0]->author }}">
......................
<button type="submit" class="btn btn-primary">Save</button>
<input type="hidden" name="_method" value="PUT">
<input type="hidden" name="_token" value="{{ csrf_token() }}" />
</form>
控制器:
public function update(Request $request, $id)
{
$book = new Book;
$title = $request->input('title');
$author = $request->input('author');
$category = $request->input('category');
$date = $request->input('date');
if ($book->updateBook($id, $title, $author, $category, $date)) {
return redirect('books')->with('status', 'Successfuly edited!');
}
else {
return dd($id);
}
}
问题是,它没有通过正确的$ id。它传递一个字符串{books}
基本上$id = "{books}"
它应该是来自网址/books/31/edit
在路由中定义为具有所有可用默认方法的资源 我该怎么办?
答案 0 :(得分:1)
您需要在表单定义中传递本书的ID,作为action()
的第二个参数:
<form action="{{ action('BookController@update', ['id' => $book[0]->id]) }}" method="POST" class="form-horizontal">
有关详细信息,请参阅definition of action()
。
答案 1 :(得分:0)
解决方案非常简单:我只需要将$ id传递给视图,然后将其传递给@EricMakesStuff建议的表单动作。
答案 2 :(得分:-1)
试试这个
<form action="{{ action('BookController@update', ['id'=> 1]) }}" method="POST" class="form-horizontal">