繁体   English   中英

如何在php Laravel中调用Controller方法?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM