2017-01-03 168 views
2

我想對兩個不同的表使用laravel 5.3身份驗證。 通過使用laravel身份驗證將如何可能?Laravel 5.3多重身份驗證設置

我已經設置了auth.php文件,並加入了防護, 創建了一個新模型,並遷移了必要的文件。

我複製了控制器,並更新了命名空間,並指定了路由。 而且,是的,我能夠訪問該路線,以特定的控制器..

但是,當我註冊時,它進入用戶表。 爲什麼以及如何將其設置到正確的表格? 我認爲警衛會做這項工作。

而且, 如果我們使用默認的laravel認證,我們不能設置路由? 我的意思是,我可以訪問它,並在路線上進行更改,但是當註冊後,它會返回到默認路線。 我不知道是否有任何的方式來重寫..

非常感謝

+1

PLZ包括需要的代碼行以便更好地理解情況 – Kalanka

+0

_不要爲不同的用戶類型創建多個表。這隻會導致頭痛。如果你有一個「用戶」表和一個表,「管理員」表;當你引入第三個用戶類型時會發生什麼?你打算創建另一個模型,控制器,視圖,認證守衛等嗎?只需擁有「用戶」,然後使用授權來確定他們在應用程序中可以做什麼和不可以做什麼。 –

回答

3

你說的正確的table.You意味着應編輯您在寄存器控制器 防爆科目編號表名: -

$company= Company::create([ 
      'companyname' =>($data['companyname']), 
      'Address1' =>($data['Address1']), 
      'Address2' =>($data['Address2']), 
      'telephone' =>($data['telephone']), 

     ]); 
+0

我編輯了正確的表名。 但我認爲該功能沒有執行.. 因爲當我嘗試返回一個字符串,它不會被執行。 執行默認功能。 我想,有沒有什麼辦法,我可以通過警衛認證系統,所以,我可以重複使用認證碼,而不需要複製它的一套 –

+0

您是否在註冊控制器中使用了所需的模型?你有沒有提到你的代碼需要「返回」?前; - 返回$用戶;在你的功能 –

+0

是的,我做了。 我終於完成了。 顯然,錯誤在於視圖文件.. 我沒有重寫視圖文件,它用於默認身份驗證。 當我整理出來後,我終於能夠實現我想達到的目標.. 非常感謝,Mindi –

3

我也是新的,但嘗試改變表中註冊控制器

protected function create(array $data) 
{ 

    return User::create([ 
     'name' => $data['name'], 
     'email' => $data['email'], 
     'password' => bcrypt($data['password']), 
     'user_type'=>$data['user_type'], 

    ]); 

替換「用戶」您要什麼恩之三的數據..

正如我在那裏瞭解auth.php ... 我們使用的模型(表)登錄..

'providers' => [ 
    'users' => [ 

     'driver' => 'eloquent', 

     'model' => App\Models\User::class, 
     'table' => 'users', 

    ], 

嘗試一下...... 很抱歉,如果我我錯了..

+0

它更好,如果你更清楚你想要什麼,與代碼段,, ISN 't it brother ... – SalindaKrish

1

但是,當我註冊時,它會去用戶表。爲什麼以及如何將其設置爲 正確的表格?

假設您使用自動生成的認證控制器,視圖和路由。 導航到app/Http/Controllers/Auth/RegisterController.php添加using YourModelName頂端並更改以下功能到您自己的模型。

protected function create(array $data) 
    { 
     return User::create([ 
      'name' => $data['name'], 
      'email' => $data['email'], 
      'password' => bcrypt($data['password']), 
     ]); 
    } 

如果我們使用默認laravel認證,我們是不是能夠設置路由?

如果ü意味着重定向登記後,你還可以設置在RegisterController

/** 
* Where to redirect users after registration. 
* 
* @var string 
*/ 
protected $redirectTo = '/home'; 

關於驗證的路線。他們自動地被下面的行放在/routes/web.php

Auth::routes(); 

您可以通過刪除此與您期望的驗證路徑替換它改變這種

+0

Ya,但函數create()沒有執行.. 現在,我正在定義兩組相似的函數 所有存儲在具有不同名稱空間的兩個不同文件夾中,並且我指定create()函數來存儲不同的模型.. 在AdminAuth中,我使用Admins :: create(); 在Auth中,我使用Users :: create(); 但似乎在AdminAuth中創建的函數沒有執行,因爲它甚至在我嘗試返回字符串時甚至不返回字符串。 我想如果我們可以指定在註冊過程中使用哪個警衛,認證系統,那會更好。謝謝 –

0

在auth.php這是被定義,這將設置使用用戶模型。你可以改變她的模型

'providers' => [ 
     'users' => [ 
      'driver' => 'eloquent', 
      'model' => App\User::class, 
     ], 
],