2016-04-22 153 views
1

我需要能夠做一個post方法默認的「/註冊」從一個窗體,即使當我已經通過身份驗證。Laravel 5.2默認認證,如何註冊時認證

目前它不可能,我沒有得到任何錯誤,但我沒有在我的數據庫中得到記錄。

我的表單和代碼在im未登錄時起作用 我需要在哪裏進行更改才能使用? 我認爲它的registersusers.php附近,但代碼對我來說是全新的。

+0

你能發表一些代碼嗎?我沒有新的Laravel副本來檢查默認值...註冊控制器和路由文件應該足夠了 –

+0

如果您需要這樣做(您要求)並且目的是註冊(添加另一個用戶) 「糟糕的設計」。你應該考慮重新思考。 – Kyslik

+0

其系統中只有擁有者可以在他登錄時註冊新用戶.SlateEntropy的解決方案可以工作。 – cger

回答

1

默認情況下,您不能這樣做,因爲訪客中間件在用戶訪問註冊頁面時停止記錄。

在您的AuthController(由Laravel在app/Http/Controllers/Auth中提供)中,您可以指定哪些方法應該可供非客人(或經過驗證的用戶)訪問。

默認情況下,只有logout方法可用於登錄用戶,但是您可以添加任何您想要的。

public function __construct() 
{ 
    $this->middleware($this->guestMiddleware(), ['except' => ['logout', 'showRegistrationForm', 'register']]); 
} 

showRegistrationForm是負責顯示登錄頁面和表格,register負責處理註冊和持續它。

+1

這是一個非常簡單的解決方案,它工作正常! – cger

0

從技術上講,它按預期工作。登錄的用戶不應該能夠註冊用戶,這是沒有意義的。

但是,您可以簡單地在您自己的控制器中使用RegistersUsers特徵來嘗試註冊用戶。它是如此簡單:

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
class RegistrationController extends Controller { 
    uses RegistersUsers; 

    public function create(Request $request){ 
     return $this->postRegister($request); 
    } 
} 

->postRegister()方法由RegistersUsers特徵提供。它接受一個\Illuminate\Http\Request對象並作爲依賴注入,因此您只能通過\Illuminate\Http\Request的實例。您可以通過簡單地只調用$this->showRegistrationForm();,比如這顯示registration形式以及:

public function show(){ 
    return $this->getRegister(); 
} 

現在只需相應附上您的路線。