2015-11-13 21 views
2

我正在laravel中創建註冊。laravel形式不按預期導演

我期待在提交此表要帶我去(在同一頁,我的)http://localhost:8888/mylaravel/notetomyself/public/auth/register

但提交它實際上在http://localhost:8888/auth/register

下面的代碼最終是我的觀點看法/ AUTH/register.blade.php

<div class="container-fluid"> 
    <div class="row"> 
     <div class="col-md-8 col-md-offset-2"> 
      <div class="panel panel-default"> 
       <div class="panel-heading">Register</div> 
       <div class="panel-body"> 

@if (count($errors) > 0) 
    <div class="alert alert-danger"> 
     <strong>Whoops!</strong> There were some problems with your input.<br><br> 
     <ul> 
      @foreach ($errors->all() as $error) 
       <li>{{ $error }}</li> 
      @endforeach 
     </ul> 
    </div> 
@endif 

<form class="form-horizontal" role="form" method="POST" action="/auth/register"> 
<input type="hidden" name="_token" value="{{ csrf_token() }}"> 

<div class="form-group"> 
<label class="col-md-4 control-label">Name</label> 
<div class="col-md-6"> 
<input type="text" class="form-control" name="name" value="{{ old('name') }}"> 
</div> 
</div> 

<div class="form-group"> 
<label class="col-md-4 control-label">E-Mail Address</label> 
<div class="col-md-6"> 
<input type="email" class="form-control" name="email" value="{{ old('email') }}"> 
</div> 
</div> 

<div class="form-group"> 
<label class="col-md-4 control-label">Password</label> 
<div class="col-md-6"> 
<input type="password" class="form-control" name="password"> 
</div> 
</div> 

<div class="form-group"> 
<label class="col-md-4 control-label">Confirm Password</label> 
<div class="col-md-6"> 
<input type="password" class="form-control" name="password_confirmation"> 
</div> 
</div> 

<div class="form-group"> 
<div class="col-md-6 col-md-offset-4"> 
<button type="submit" class="btn btn-primary"> 
    Register 
</button> 
</div> 

</div> 
</form> 
</div> 
</div> 
</div> 
</div> 
</div> 

我routes.php文件文件包含此:

Route::get('login', array('uses' => '[email protected]')); 
Route::get('home', array('uses' => '[email protected]')); 
Route::post('login', array('uses' => '[email protected]')); 
Route::get('logout', array('uses' => '[email protected]')); 
Route::get('auth/register', 'Auth\[email protected]'); 
Route::post('auth/register', 'Auth\[email protected]'); 
Route::controllers([ 
    'password' => 'Auth\PasswordController', 
]); 

控制器認證/ AuthController.php

namespace App\Http\Controllers\Auth; 

use App\User; 
use Validator; 
use App\Http\Controllers\Controller; 
use Illuminate\Foundation\Auth\ThrottlesLogins; 
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers; 

class AuthController extends Controller 
{ 
    /* 
    |-------------------------------------------------------------------------- 
    | Registration & Login Controller 
    |-------------------------------------------------------------------------- 
    | 
    | This controller handles the registration of new users, as well as the 
    | authentication of existing users. By default, this controller uses 
    | a simple trait to add these behaviors. Why don't you explore it? 
    | 
    */ 

    use AuthenticatesAndRegistersUsers, ThrottlesLogins; 
    private $redirectTo = '/'; 
    /** 
    * Create a new authentication controller instance. 
    * 
    * @return void 
    */ 
    public function __construct() 
    { 
     $this->middleware('guest', ['except' => 'getLogout']); 
    } 

    /** 
    * Get a validator for an incoming registration request. 
    * 
    * @param array $data 
    * @return \Illuminate\Contracts\Validation\Validator 
    */ 
    protected function validator(array $data) 
    { 
     return Validator::make($data, [ 
      'name' => 'required|max:255', 
      'email' => 'required|email|max:255|unique:users', 
      'password' => 'required|confirmed|min:6', 
     ]); 
    } 

    /** 
    * Create a new user instance after a valid registration. 
    * 
    * @param array $data 
    * @return User 
    */ 
    protected function create(array $data) 
    { 
     return User::create([ 
      'name' => $data['name'], 
      'email' => $data['email'], 
      'password' => bcrypt($data['password']), 
     ]); 
    } 
} 

想知道如果有什麼地方我可能已經設置了錯誤的路徑?

+0

是否更換了'Authenticate.php'&'RedirectIfAuthenticated.php'? –

+0

我不這麼認爲 – js091514

回答

1

爲什麼你會被重定向有:

它,因爲你形成動作點/auth/register [因爲它是不完整的路徑Web服務器只是將用戶的域名爲根路徑。

你應該做的:

只需auth之前刪除/action="/auth/register"

附加提示:(要修復後做)

爲了處理重定向後/認證前您應該根據您在Authenticate.phpRedirectIfAuthenticated.php內部的變化app/Http/Middlewarereturn redirect()->guest('yourpath');或請求讓return $next($request);

注:

變化,根據你的路由的行動!

+0

我刪除了「/」還是做了同樣的事情 – js091514

+0

您是否清除了視圖並嘗試了隱身模式? –

+0

清除了意見? – js091514

1

正如其他人所說,你的路徑是相對於根域。最簡單的解決方案是使用Laravel的URL輔助函數來創建絕對URL。你有幾個選擇。

  1. 產生絕對URL給定的路徑:

    action="{{ url('auth/register') }}" 
    
  2. 使用路由名稱

    action="{{ route('routeName') }}" 
    
  3. 產生絕對URL指定控制器動作產生絕對網址:

    action="{{ action('Auth\[email protected]') }}" 
    

來源:http://laravel.com/docs/5.1/helpers#urls

+0

這個作品!謝謝! – js091514

+0

不客氣。 :) –