首页 > 解决方案 > 如何在 Laravel 中使用具有不同控制器功能和相同路由的不同表单

问题描述

我正在用 Laravel 构建一个应用程序

在同一个blade文件中,我有不同的表格。在div我有两种形式

在一种形式中,user将某些内容写入textarea. 按下按钮 ok 后,页面被重新加载,数据存储在数据库表中。

另一种形式出现在模式中,它包含user可以设置的其他选项,按下另一个按钮后,数据应存储在另一个数据库表中。

那么我该怎么做呢?我尝试以route这种方式在我的控制器中使用该功能:

Route::post('/anam','AnamnController@store');
Route::post('/anam','AnamnController@storePar');

和标签形式:

<form action="{{ action('AnamController@store') }}" method="post" class="form-horizontal">
<form id="formA" action="{{ action('AnamnesiController@storePar') }}" method="" class="form-horizontal">

但是这些返回给我的错误。那我该怎么办?

谢谢!

标签: phplaravelcontrollerroutes

解决方案


除非您通过 get 而不是 post 更改一个,否则不可能对两个不同的功能使用相同的路线,例如:

Route::post('/anam','AnamnController@store');
Route::get('/anam','AnamnController@storePar');

但你可以这样逻辑:

Route::post('/anam','AnamnController@store');

和标签形式:

<form action="{{ action('AnamController@store') }}" method="post" class="form-horizontal">
    <input name="input_name" value="input-val" />
</form>

在控制器中:

public function store (){
   if(request()->input_name == 'val-1')
       this->store1();
   else
       this->store2();
}

protected function store1 () {
  //
}
protected function store2 () {
      //
}

推荐阅读