【问题标题】:Laravel Routing 2 different contact forms going to the same routeLaravel 路由 2 个不同的联系表格去同一条路线
【发布时间】:2014-02-28 08:43:12
【问题描述】:

我正在使用 Laravel 构建一个网络应用程序。我有两个联系表格。一个是网站的主要联系表格,另一个位于人员页面上,用户可以在其中联系个人资料。

在 app/routes.php 我有两条路线

Route::get(Str::slug(trans('main.contactUrl')), array('uses' => 'HomeController@contact', 'as' => 'contact'));
Route::post(Str::slug(trans('main.contactUrl')), array('uses' =>  'HomeController@submitContact', 'as' => 'submit.contact'));

Route::post(Str::slug(trans('people.contactUrl')), array('uses' => 'HomeActController@submitContactAct', 'as' => 'submit.contact'));

出于某种奇怪的原因,如果我使用 People 联系表单发送消息,然后我转到 Main Contact 表单发送消息,main.contactUrl 将遵循 people.contactUrl 的路线并启动 submitContactAct 代码.

我知道这种情况正在发生,因为 main.contactUrl 开始抛出诸如 Undefined variable: actemail 之类的错误 actemail 是我只在 submitContactAct() 函数中定义的变量。

【问题讨论】:

  • 你检查我的答案了吗?对你有用吗?
  • 是的,感谢您的意见,它解决了我的问题
  • 很棒的@stephenmelb,所以请接受并 +1 答案,以便其他人在遇到类似问题时可以找到它。欢呼

标签: php forms laravel


【解决方案1】:

您有两条路线具有相同的名称“submit.contact”

Route::post(Str::slug(trans('main.contactUrl')), array('uses' =>  'HomeController@submitContact', 'as' => 'submit.contact'));
Route::post(Str::slug(trans('people.contactUrl')), array('uses' => 'HomeActController@submitContactAct', 'as' => 'submit.contact'));

 //                                                          -------v
//array('uses' =>  'HomeController@submitContact', 'as' => 'submit.contact'));
 //                                                                -------v
//array('uses' =>  'HomeActController@submitContactAct', 'as' => 'submit.contact'));

更改其中一条路由的名称(例如更改为submit.contact.act),然后运行composer dump-autoload,现在一切正常。

【讨论】:

    猜你喜欢
    • 2018-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多