将控制器方法定义为表单操作

时间:2016-01-02 20:06:12

标签: php laravel laravel-5

我有以下代码

{!! Form::open(array('action' => 'clientController@create')); !!}
除非我把一些代码放到routes.php中(这是我的解决方案),否则没有定义clientController @ create,

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

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

1 个答案:

答案 0 :(得分:0)

当你调用一个动作时,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

无论如何,您需要在routes.php中告知Laravel您的路线,否则它将不知道如何处理该请求。

我建议

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

请阅读 https://laravel.com/docs/5.2/controllers#restful-naming-resource-routes