在我的控制器中,我有以下代码
$assignents =Assign::whereHas('users', function ($q) {
$q->where('user_id', 3);
})->get();
我希望数字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;
}