2016-05-12 127 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.