Laravel 5在destroy路径上缺少必需的参数

时间:2016-01-29 20:12:22

标签: php laravel laravel-5

我最近从laravel 5.1升级到5.2,现在我收到错误<form class="form-horizontal" action="<?php echo route('example.destroy'); ?>" method="post">

此处发生错误: 关于表单的action属性的route.php

此处了解路线在Route::resource('example', 'ExampleController');

上的注册方式
var lastSelectedOption = '';
$('select').on('change', function(){ 
   //do what you need to do
   lastSelectedOption = this.val();
});

当我在5.1时,这一行没有错误。我刚刚升级到5.2,现在就发生了。

这样做的功能是允许用户通过选中他们希望删除的复选框来删除多个条目。然后在提交时,它将重定向到控制器上的destroy方法。

3 个答案:

答案 0 :(得分:0)

您可以尝试以下

<form class="form-horizontal" action="<?php echo       
url('example'); ?>" method="post">

Route::post('example', 'ExampleController@destroy');

答案 1 :(得分:0)

将我的应用更新到Laravel 5.2时遇到了同样的问题。

显然,Laravel 5.2需要一个有效的路径来“破坏资源”,例如:

/my-route/item-to-destroy/{id}

在这里,在我们的应用程序中,我在每个路径的末尾放置一个“{id} = 0”或“{id} = null”(当调用尚未准备好的“路径破坏”时)。

在你的情况下,它将类似于:

<form action="<?php echo route('example_route.destroy', ['id'=>0]); ?>" method="post">

或,声明有效的资源ID:

<form action="<?php echo route('example_route.destroy', ['id'=>$object->id]); ?>" method="post">

答案 2 :(得分:0)

试试这个:

<form class="form-horizontal" action="<?php echo route('example.destroy', $record->id); ?>" method="post">

或Laravel方式:

{!! Form::open(['route' => ['example.destroy', $record->id],
                                                'method' => 'delete']) !!}

{!! Form::close() !!}