在 Laravel 中从同一网页发布两个表单

Posted

技术标签:

【中文标题】在 Laravel 中从同一网页发布两个表单【英文标题】:Post Two Forms From Same Webpage In Laravel 【发布时间】:2015-07-04 17:45:21 【问题描述】:

我正在使用 laravel 创建一个单页网站,其中我在同一页面上有一个登录表单和一个注册表单。

我希望将它们分别路由到它们各自的控制器功能,例如 AccessController@loginAccessController@register。 我怎样才能做到这一点,当这两种形式的路线是:

Route::post('/', 'ControllerName@function')

【问题讨论】:

在我看来,最好的方法是为登录和注册创建单独的端点,因为它们是两个不同的东西。 【参考方案1】:

我知道为时已晚。但如果有人在寻找这个。 为什么不这样使用?

第一种形式

<form method="POST" name="login" id="login" action=" url('/login') ">

</form

第二种形式

<form name="register" method="POST" action=" url('/register')">

</form>

在你的路线上

Route::post('/login','AuthController@login');
Route::post('/register', 'AuthController@register');

【讨论】:

【参考方案2】:

这通常是个坏主意,但你可以通过这样做来实现你想要的:

    &lt;input type="hidden" name="action" value="register"&gt;&lt;input type="hidden" name="action" value="login"&gt; 添加到相应的注册和登录表单中

    在控制器方法中检查提交了哪个表单:

  $action = Input::get('action');

  // handle the register request
  if ($action === 'register') 
      return $this->register();

  // handle the login request
   elseif ($action === 'login') 
      return $this->login();

   else 
      throw new Exception("Unknown action");
  

【讨论】:

这是我们在 Laravel 中处理它的唯一方法吗?或者你说的是一般的 php 这是一般的PHP方式。 因此这里有两个独立的控制器功能,您还可以创建两个具有两个不同操作的表单并提交它们。

以上是关于在 Laravel 中从同一网页发布两个表单的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 在 POST 方法中从 multipart/form-data 获取请求

Laravel 5.2 在同一页面上登录和注册表单

Laravel 4 - 同一页面上有多个表单?

Laravel中从一个表到另一个表中的同一字段的多个外键

Laravel 从视图中的表单填充数据库表并将其显示在同一视图中

如何在 laravel post 方法中从 ajax 中删除 403 错误