将控制器方法定义为窗体操作


Define controller method as form action

我有以下代码

{!! Form::open(array('action' => 'clientController@create')); !!}

它大喊clientController@create除非我在routes.php中放入一些代码(这是我的解决方案),否则不会定义

Route::post('clientRegistration', ['uses' => 'clientController@create', 'as' => 'registration']);

然后一切都很好,但我不确定我是否找到了正确的解决方案,我是否必须为将要创建的每个表单创建一个路径?我不知道为什么Laravel没有在routes.php文件中注册就找不到控制器方法

当您调用一个操作时,Laravel会搜索它存储的到处理程序关联的路由。这在routes.php 中完成

如果插入

Route::post('clientRegistration', ['uses' => 'clientController@create', 'as' => 'registration']);

在您的routes.php中,您可以执行以下任意

{!! Form::open(array('action' => 'registration')); !!}
{!! Form::open(array('action' => 'clientController@create')); !!}

如果你只坚持

Route::post('clientRegistration', 'clientController@create');

你仍然可以使用

{!! Form::open(array('action' => 'clientController@create')); !!}

更多信息请点击此处:https://laravel.com/docs/5.2/routing#named-路由

不管怎样,你都需要在routes.php中通知Laravel你的路线,否则它将不知道如何处理请求。

我建议

Route::resource('client', 'ClientController');

请阅读https://laravel.com/docs/5.2/controllers#restful-命名资源路由