Laravel表单操作导致未定义的路径

Laravel表单操作导致未定义的路径,laravel,Laravel,表单操作总是让我困惑,因为仅仅指定控制器似乎非常简单。然而,每次使用它时,我总是得到路由[Controller@method]未定义。因此,我总是手动创建路由,然后为我的表单使用url 我目前有一个路由设置为route::controller('handle/events','eventscocontroller'),我正试图从如下表单调用方法postAdd: {{Form::open(['action'=>'EventsController@postAdd“])}} 而不是使用 ['url'=

表单操作总是让我困惑,因为仅仅指定控制器似乎非常简单。然而,每次使用它时,我总是得到
路由[Controller@method]未定义
。因此,我总是手动创建路由,然后为我的表单使用url

我目前有一个路由设置为
route::controller('handle/events','eventscocontroller')
,我正试图从如下表单调用方法
postAdd

{{Form::open(['action'=>'EventsController@postAdd“])}}

而不是使用
['url'=>'handle/events/add']
这是完全可以接受的,因为这是一个RESTful路由

当我使用动作时,Laravel抛出
Route[EventsController@postAdd]未定义。
。EventsController中的方法
postAdd
也接受一个我希望以表单形式传递的参数

在控制器中,方法是

public function postAdd($staff = false) {

    var_dump($staff); // Always false

}
我又一次想,这很简单:

{{Form::open(['url'=>'handle/events/add'],true)}
但是它没有更改
$staff
的值

重述

  • 我想将表单更改为指向控制器方法,而不是URL
  • 我想在表单中传递一个参数

  • 第一个问题可以通过命名路由来解决

    For example: Route::post('handle/events/add',['as' => 'handle.event.add',  'uses' => 'EventsController@addMethod']);
    
    然后在你的状态下,你可以做这样的事情

    {{ Form::open(array('route' => 'handle.event.add', 'method' =>'POST'))}}
    
    现在您的表单将使用EventsController@addMethod

    文件

    如果要将参数传递给控制器方法,可以在路由中定义它

    Route::get('handle/{event}',['as'=>'handle.event.add','uses'=>'EventsController@addMethod”)

    现在,addMethod需要一个参数