laravel 5,表单提交重定向到未知的url值

时间:2016-08-06 13:48:49

标签: php forms laravel-5 laravel-routing

我只想知道我的项目。我有一个可以在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

2 个答案:

答案 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,我也习惯了(现在更喜欢)单独命名它们。 但这应该可以解决问题。

Laravel 5.1 docs