2016-05-12 124 views
0

我使用Laravel 5.2,我不明白,在AuthController 「返回」,如下的AuthController 「迴歸」:關於Laravel 5.2

AuthController:(外的箱子)

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

我能理解:

return view('index',compact('articles')); 

return redirect()->action('[email protected]'); 

但我無法理解上面的return User::create([... ]);

與下面的文字有什麼不同嗎?
改寫:

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

如果您滿意,請隨時關閉此問題 –

回答

2

在控制器的頂部,你可以看到authcontroller使用特點

class AuthController extends Controller 
{ 
    use AuthenticatesAndRegistersUsers, ThrottlesLogins; 

所以return User::create將新註冊的用戶返回AuthenticatesAndRegistersUsers將處理登錄,這就是爲什麼你註冊後,你自動登錄

和區別是你沒有登錄(在你共享的第二個代碼)

多數民衆贊成我認爲

2

這create()方法並不直接路由的任何地方引用,所以它並沒有返回的圖(響應)。

大多數情況下,它被相同控制器的另一種方法使用 - 其他方法依賴於create()來創建用戶,然後重定向或呈現視圖。

總之,並非所有的控制器方法都必須返回HTTP響應。其中一些方法是'內部' - 他們是助手,可以被其他方法使用。

2

User :: create function正在爲您創建一個用戶。用戶是一個模型,它會返回一個包含用戶詳細信息的集合。因此,在第一種情況下,您將返回用戶憑據。雄辯總是會返回一個集合。閱讀全文here.

在第二種情況下,back()函數會將您重定向回上一頁。您不在此處發送用戶的詳細信息。閱讀更多here.