POST路由未从根路径Laravel 5.2列出

时间:2018-04-03 06:48:26

标签: php forms laravel laravel-5 routes

使用 Laravel 5.2 ,刀片中有两个表单,他们必须从根({{1})提交(POST)两个操作})

  

这是 app / Http / routes.php

/
  

.. Route::auth(); // Mails Route::get('/contact', ['uses' => 'PageController@getContact', 'as' => 'contact']); Route::post('/contact', ['uses' => 'PageController@postContact', 'as' => 'pages.postContact']); Route::post('/', ['uses' => 'PageController@postGuestRegistration', 'as' => 'pages.postGuestRegistration']); Route::post('/', ['uses' => 'PageController@postOnlineEnquiry', 'as' => 'pages.postOnlineEnquiry']); ... 以及其他/contactgetpost路线正常运行。

只考虑来自根(resource)的两条POST路由,这里的路由是列表,但仅限列表中的最后一条。

即。, /

除非 pages.postOnlineEnquiry ,否

我有一个路线组:

pages.postGuestRegistration

有解决方案吗?

即使我从根路径对这些POST路由进行分组,我也看不到任何可能的方法。

现在我找不到将两个表单发布到同一路径和不同操作的方法。

错误显示:

  

路线[pages.postGuestRegistration]未定义。

OR

  

路线[pages.postOnlineEnquiry]未定义。

1 个答案:

答案 0 :(得分:1)

@NigelRen是对的,你可以使用相同的网址和同一方法getpost ...

所以我的建议是,使用隐藏输入来区分控制器

<form action="{{route('guest_or_online')}}" method="post">
    .....
    .....
    <input type="hidden" value="guest"  name="type">
</form>

<form action="{{route('guest_or_online')}}" method="post">
    .....
    .....
    <input type="hidden" value="online" name="type">
</form>

所以你的路线只有一个,这是

Route::post('/', ['uses' => 'PageController@GuestOrOnline', 'as' => 'guest_or_online']);

在控制器中,您可以通过获取type

的值来调用每个函数
public function GuestOrOnline(Request $request){
    if($request->type == "guest"){
        return $this->postGuestRegistration($request);
    }else{
        return $this->postOnlineEnquiry($request);
    }
}