2017-05-30 109 views
0

所以我有一个Controller,它需要用户名。这两者有什么区别?在Laravel控制器中获取当前登录用户名

public function myFunc(Request $request) { 
    $username = $request->user()->username; 
} 

public function myFunc() { 
    $username = Auth::user()->username; 
} 

相比其他更好或更安全吗?我应该使用哪一个呢?

+0

如果你想晕倒,解释原因。 – rotaercz

+0

没有区别,还有另外一个:auth() - > username也可以。原因在于很多人都对laravel的Facades感到厌恶。所以对于很多Facades,也有一个帮手方法。 – Christophvh

回答

0

没有区别。 第一个使用auth facade,另一个使用Request类,最终它们给出的结果相同但没有真正的性能影响,

我更喜欢我的控制器中的第一个,我仅在我的控制器中使用Auth外观观点。

+0

为什么你更喜欢控制器的第一个和Views的第二个是什么逻辑?明智的安全有什么区别吗?这里的关键字是安全性。我看到有人侵入Laravel网站,但他们不会告诉我他们是如何做到的。 – rotaercz

+0

nope,一个facade提供了一个类似静态的接口来访问一个方法,这是唯一的区别! 我更喜欢那种毫无理由的方式! (我把{它自己也放在一行中!这是个人喜好) –

+1

我明白了。谢谢回复。在那种情况下,我想我可能会使用Auth :: user()方法,因为涉及的输入较少。 – rotaercz

相关问题