在 Laravel 中从同一网页发布两个表单
Posted
技术标签:
【中文标题】在 Laravel 中从同一网页发布两个表单【英文标题】:Post Two Forms From Same Webpage In Laravel 【发布时间】:2015-07-04 17:45:21 【问题描述】:我正在使用 laravel 创建一个单页网站,其中我在同一页面上有一个登录表单和一个注册表单。
我希望将它们分别路由到它们各自的控制器功能,例如 AccessController@login
和 AccessController@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】:这通常是个坏主意,但你可以通过这样做来实现你想要的:
将<input type="hidden" name="action" value="register">
和<input type="hidden" name="action" value="login">
添加到相应的注册和登录表单中
在控制器方法中检查提交了哪个表单:
$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 获取请求