如何将硬编码用户ID更改为已认证的用户?

时间:2019-04-28 10:45:37

标签: php laravel

在我的控制器中,我有以下代码

    $assignents =Assign::whereHas('users', function ($q) {
        $q->where('user_id', 3); 
    })->get();

我希望数字3是已登录的经过身份验证的用户。如何重写此代码?

3 个答案:

答案 0 :(得分:2)

您可以使用Auth门面来retrieve the authenticated user.

$assignents = Assign::whereHas('users', function ($q) {
    $q->where('user_id', Auth::user()->id); 
})->get();

请记住发布您尝试过的内容。这使我们更愿意为您解决问题,而不仅仅是为您编写代码。我建议您阅读以下部分:How to Ask这是一个很好的资源,当我第一次访问该网站时,它可以帮助我提出更好的问题!

答案 1 :(得分:0)

您可以在没有Auth Facade的情况下完成此操作

$assignents = Assign::whereHas('users', function ($q) {
    $q->where('user_id', auth()->user()->id); 
})->get();

$assignents = Assign::whereHas('users', function ($q) {
    $q->where('user_id', auth()->id()); 
})->get();

答案 2 :(得分:0)

您可以通过以下方式获取身份验证用户ID:

使用auth()辅助功能

auth()->user()->id or auth()->id()

使用Auth门面

Auth::user()->id, Auth::id()

或者您可以通过Request

来获得它
public function index(Request $request)
{
    $request->user()->id;
}