【问题标题】:How to use different form with different controller functions and the same route in Laravel如何在 Laravel 中使用具有不同控制器功能和相同路由的不同表单
【发布时间】:2018-10-18 19:55:40
【问题描述】:

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

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

在一种形式中,usertextarea 中写入了一些内容。按下 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">

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

谢谢!

【问题讨论】:

  • 你遇到了什么错误

标签: php laravel controller routes


【解决方案1】:

不可能对两个不同的函数使用相同的路由,除非你通过 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 () {
      //
}

【讨论】:

    【解决方案2】:

    您不能有两个具有相同 url 的路由具有相同的路由 method

    在您的情况下,您有两个 POST 方法指向同一个 url。第二个路由定义取消了第一个。

    重命名其中一个。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-24
      • 2016-03-29
      • 2018-04-25
      • 1970-01-01
      • 2017-04-05
      • 2016-10-03
      • 2016-03-03
      • 1970-01-01
      相关资源
      最近更新 更多