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

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

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

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

【问题讨论】:

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

标签: php forms laravel routes laravel-5


【解决方案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】:

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

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

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

      $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方式。
    • 因此这里有两个独立的控制器功能,您还可以创建两个具有两个不同操作的表单并提交它们。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-30
    • 2019-05-26
    • 2023-03-03
    • 2011-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多