[英]How do I call a Controller method in php Laravel?
我有一个控制器,在其中有几种方法。 我的问题是如何将控制器的操作设置为我的表单:
<form action="action('ExamenController@InsertUser')" method="post">
显然,这给出了著名的例外:
动作App \\ Http \\ Controllers \\ ExamenController @ InsertUser未定义.... blablabla
也尝试过这个:
<a class="btn btn-primary" href="{{action('ExamenController@InsertUser')}}">Save</a>
同样的错误。 有人知道这是怎么回事吗??? 我不了解Laravel 5.5中的文档
但是我知道这可以使用以下方式放入web.php(以前称为route.php):
Route::post('url','ExamenController@InsertUser');
正确的语法是这样的:
<form action="{{ action('ExamenController@InsertUser') }}" method="post">
在文档中对此进行了概述。
但是,此错误:
动作App \\ Http \\ Controllers \\ ExamenController @ InsertUser
说该方法实际上不存在于您的控制器中。
是的,您已经使用Route::post('url','ExamenController@InsertUser');
为它定义了一条路由Route::post('url','ExamenController@InsertUser');
,但是您实际上已经在ExamenController
内部创建了此方法吗?
该错误表明您还没有,因此我将再次检查它是否存在和/或拼写是否正确。
一种替代方法,尽管如果不存在InsertUser
方法不能解决问题,将可以实现以下目标:
<form action="{{ url('url') }}" method="post">
如果要使用命名路由来执行此操作,则可以通过为路由提供名称,然后将其用于表单操作来实现:
Route::post('url','ExamenController@InsertUser')->name('InsertUser');
<form action="{{ route('InsertUser') }}" method="post">
再次概述了docs 。
虽然使用Blade在路径或URL中合并很方便,但是Laravel具有内置的方式来处理此问题:
{!! Form::model($form, ['id' => 'my_form_id', 'method' => 'POST',
'action' => ['ExamenController@InsertUser', $form->id], 'class' => 'some-class'])!!}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.