您好我尝试在Laravel 5.4中删除我的评论,但不幸的是我收到此错误。真的无法解决问题所在。
这是我的表格:
<form action="{{route('comments.destroy', $comment->id) }}">
<div class="form-group">
<button type="submit" class="btn btn-danger">DELETE</button>
</div>
{{ method_field('DELETE') }}
</form>
这是我的路线:
// Comments
Route::post('/lots/{lot}/comments', 'CommentsController@store');
Route::get('/comments', 'CommentsController@show');
Route::get('comments/{id}/edit', ['uses' => 'CommentsController@edit', 'as' => 'comments.edit']);
Route::put('comments/{id}', ['uses' => 'CommentsController@update', 'as' => 'comments.update']);
Route::delete('comments/{id}', ['uses' => 'CommentsController@destroy', 'as' => 'comments.destroy']);
Route::get('comments/{id}/delete', ['uses' => 'CommentsController@delete', 'as' => 'comments.delete']);
这是控制器:
public function delete($id)
{
$comment = Comment::find($id);
return view('comments.delete')->withComment($comment);
}
public function destroy($id)
{
$comment = Comment::find($id);
$comment->delete();
return back();
}
任何想法我做错了什么?
答案 0 :(得分:1)
我认为我发现了问题,它的表单操作的路由语法是错误的。 route helper
<form action="{{route('comments.destroy', ['id' => $comment->id]) }}">
{{ csrf_field() }}
<div class="form-group">
<button type="submit" class="btn btn-danger">DELETE</button>
</div>
<input type="hidden" name="_method" value="DELETE">
</form>
答案 1 :(得分:0)
在我的情况下,我的错误是我没有在发送到视图的对象上设置id属性,这就是表单操作URL没有它的原因。
检查是否在 comment 对象中设置了 id 属性,因此URL解析为: ... / comments / #### < / strong>
例如
$photos = Photo::all()->select('id', 'name')->get();
return view('photos.index')->with('photos', $photos);