我问了一个非常基本的问题,我搜索了两个多小时,但我还是无法修复它。我是laravel的新手,并试图阅读他们的任务示例。但有些删除如何工作。 以下是我的路线代码:
Route::delete('/task/{task}', function(\AltafBlog\Task $task) {
$task->delete();
return redirect('/');
});
以下是我的删除表格:
<form action="{{url('/task', [$task->id])}}" method="post">
{{csrf_field()}}
{{method_field('DELETE')}}
<button class="btn btn-danger">Delete</button>
</form>
现在当我点击删除按钮时,它不会删除表格中的项目。此外,我没有收到任何错误消息。添加新项目并列出它们工作正常。 我不确定我做错了什么。有人能说出那里发生了什么吗?
更新:更新到laravel 5.2后,模型绑定正在运行,但验证程序在后期路由中不起作用。邮政路线如下:
Route::post('/task', function(Request $request) {
$validator = Validator::make($request->all(), [
'title' => 'required|max:255',
]);
if($validator->fails())
{
return redirect('/')->withInput()->withErrors($validator);
}
$task = new Task();
$task->title = $request->title;
$task->active = 1;
$task->save();
return redirect('/');
});
谢谢
答案 0 :(得分:1)
我相信可能会有几个原因导致它无法正常工作。
首先,当你的参数$ task-id被拉过你的路线时,它将是变量$ task。然后,您将使用任务实例覆盖此变量。然后,您正在运行delete方法,它不会抛出错误。尝试将您的代码更改为以下
您的路线
Route::delete('/task/{taskID}', function(\AltafBlog\Task $task, $taskID) {
$task->find($taskID);
$task->delete();
return redirect('/');
});
答案 1 :(得分:1)
Laravel版本中的问题。 Laravel 5.1.24没有隐式绑定。
因此,如果您想使用它,您应该使用(或升级)Laravel 5.2。* Upgrading To 5.2.0 From 5.1
答案 2 :(得分:0)
无需在->all()
之后添加$request
。
您的代码应如下所示:
$validator = Validator::make($request, [
'title' => 'required|max:255',
]);
或者你可以试试这个:
$this->validate($request, [
'title' => 'required|max:255',
]);