【问题标题】:laravel 5, form submit redirect to unknown url valuelaravel 5,表单提交重定向到未知的url值
【发布时间】:2016-08-06 13:48:48
【问题描述】:

我只是想知道我的项目。我有一个可以在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 上做了正确的事情

Route::group([ 'prefix' => 'app', 'middleware' => 'auth' ], function() {
....
Route::controller('esetting', 'SettingController');
Route::get( 'esetting/mymail', 'SettingController@viewEmailAutom' ); // view for the form to display
....

【问题讨论】:

  • 不确定这是否只是一个错字,但您的结束表单标签不正确。
  • 另外,您的网址是 /esetting/... 但您使用的是 Route::controller('setting', ...)
  • 你检查过你的授权中间件吗?
  • 我没有使用 Route::controller,我喜欢精确定义路由以避免搜索哪个操作服务于哪个路由的问题。
  • 在问题中添加您的设置控制器代码

标签: php forms laravel-5 laravel-routing


【解决方案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

【讨论】:

    【解决方案2】:

    如果你使用 Route::controller 你需要根据路由定义你的方法。 例如

    Route::controller('esetting', 'SettingController');
    

    当您访问 http://yoursite.com/esetting 时会寻找 SettingController@getIndex

    要到达 SettingController@postEmailAutomsave(),您需要转到 http:://yoursite.com/esetting/emmail/automsave 路径

    我自己没有使用过 Route::controller,我也习惯了(现在更喜欢)单独命名它们。 但这应该可以解决问题。

    Laravel 5.1 docs

    【讨论】:

      猜你喜欢
      • 2014-08-22
      • 1970-01-01
      • 2013-02-09
      • 2019-08-31
      • 2021-10-29
      • 2021-09-17
      • 1970-01-01
      • 2017-12-03
      • 1970-01-01
      相关资源
      最近更新 更多