提交按钮重新路由到主页


Laravel Submit button re-routing to Home Page

所以我使用了默认的注册表单Laravel

复印一份登记表,做一个稍微不同的。

基本上有两种注册形式

  1. Starter - original

  2. 青铜-副本

—My Routing List—

Auth::routes();
Route::get('/register', function(){
  return View::make('auth.register');
});
Route::get('/bronze', function(){
  return View::make('auth.bronze');
});
Route::get('/login', function(){
  return View::make('auth.login');
});

现在每次我提交青铜注册表单,它都会重定向到我的主页。

我想可能是我的Action call在我的视图。它与Starter Form

相同
<form class="form-horizontal" role="form" method="POST" action="{{ url('/register') }}">

如果我是对的,我刚才做的是不好的做法,但我是这个框架的新手。

您需要显式地添加POST路由,因为Auth::routes()方法只处理对/register的调用:

Route::post('/bronze', 'Auth'RegisterController@register');

并确保您将青铜表单提交到相同的路由:

<form class="form-horizontal" role="form" method="POST" action="/bronze">

另一种可能更好的解决方案是使用相同的注册表单,并为他们的帐户类型选择输入:

<form class="form-horizontal" role="form" method="POST" action="/register">
    <input type="radio" name="type" id="type-starter" value="starter">
    <label for="type-starter">Starter</label>
    <input type="radio" name="type" id="type-bronze" value="bronze">
    <label for="type-bronze">Bronze</label>

老问题,但有类似的问题。

如果您启用了中间件,请不要忘记在所有表单中包含csrf令牌。

现在它就像调用一个刀片帮助器一样简单:

<form action="..." method="...">
    @csrf
    ...
</form>