【问题标题】:Laravel model binding not working for deleteLaravel 模型绑定不适用于删除
【发布时间】:2016-03-30 19:29:41
【问题描述】:

我在问一个非常基本的问题,我搜索了两个多小时,但仍然无法解决它。我是 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 后,模型绑定工作正常,但验证器在 post 路由中不工作。发帖路线如下:

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('/');
});

谢谢

【问题讨论】:

  • 你在回调中得到$task实例了吗?
  • 您正在传递但未在路线中使用的任务 ID
  • @vijay4vijju 如果他使用 laravel 5.2 有隐式绑定
  • 我正在关注这个:laravel.com/docs/5.2/quickstart#deleting-the-task。在隐式模型绑定中,它会自动加载具有该 id 的模型。
  • @vijay4vijju。刚刚检查过,我使用的是 laravel 5.1.24。我如何将其更新到 5.2?

标签: laravel laravel-5


【解决方案1】:

Laravel 版本的问题。 Laravel 5.1.24 没有隐式绑定。

所以,如果你想使用它,你应该使用(或升级)Laravel 5.2。* Upgrading To 5.2.0 From 5.1

【讨论】:

    【解决方案2】:

    我认为这不起作用可能有几个原因。

    首先,当您的参数 $task-id 通过您的路线拉出时,它将是变量 $task。然后,您将使用任务实例覆盖此变量。然后您正在运行 delete 方法,它不会引发错误。尝试将您的代码更改为以下内容

    你的路线

    Route::delete('/task/{taskID}', function(\AltafBlog\Task $task, $taskID) {
        $task->find($taskID);
        $task->delete();
        return redirect('/');
    });
    

    【讨论】:

      【解决方案3】:

      无需在$request之后添加-&gt;all()

      您的代码应如下所示:

      $validator = Validator::make($request, [
          'title'  =>  'required|max:255',
      ]);
      

      或者你可以试试这个:

      $this->validate($request, [
          'title'  =>  'required|max:255',
      ]);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-07-03
        • 1970-01-01
        • 2017-01-04
        • 1970-01-01
        • 2016-06-23
        • 1970-01-01
        • 2017-10-07
        • 2016-10-25
        相关资源
        最近更新 更多