我只想知道我的项目。我有一个可以在If
访问的表单,这是视图中的代码:
localhost/app/esetting/mymail
但是当我尝试点击表单提交时,我希望它转到....
<form action="{{ url( 'app/esetting/emailautomsave' ) }}" class="form-horizontal" method="post" enctype="multipart/form-data">
{{ csrf_field() }}
...
<input type="submit" value="save">
</form>
并将其称为我app/esetting/emailautomsave
上的控制器。
SettingsController.php
但重定向到public function postEmailautomsave(Request $request){
...
}
?并给我这个错误:
localhost/app/mymail
这听起来很奇怪。任何人都可以对此有所了解吗?我确信我已经在NotFoundHttpException in Controller.php line 93:
Controller method not found.
routes.php
答案 0 :(得分:1)
只需简单定义:
Route::post('esetting/mymail/emailautomsave', 'SettingController@postEmailautomsave');
我知道你会说:“我已经定义了Route :: controller,所以它会自动查找它。”
但对我来说,最好准确定义路线。
如果:
它重定向到localhost / app / mymail?并给我这个错误:
Controller.php第93行中的NotFoundHttpException:控制器方法 没找到。
也许这意味着某些中间件会将您重定向到那里?
您可以通过以下方式进行检查:
public function postEmailautomsave(Request $request){
die('test');
...
}
如果它会重定向,那就意味着之前调用了某个函数并将浏览器重定向到app/mymail
。
答案 1 :(得分:0)
如果使用Route :: controller,则需要根据路径定义方法。 E.g。
Route::controller('esetting', 'SettingController');
访问http :: //yoursite.com/esetting时会查找SettingController @ getIndex
要访问SettingController @ postEmailAutomsave(),您需要转到路线http :: //yoursite.com/esetting/emmail/automsave
我自己没有使用过Route :: controller,我也习惯了(现在更喜欢)单独命名它们。 但这应该可以解决问题。