簡體   English   中英

關系“doesntHave”在 Laravel 中不起作用

[英]Relationship “doesntHave” doesnt work in Laravel

我需要幫助。 我有個問題。 在這部分代碼中,關系“doesntHave”不起作用並返回用戶的完整列表

$searchData = $request->searchData;
$users = User::doesntHave('roles')
    ->where('id','like', '%' . $searchData . '%')
    ->orWhere('name', 'like', '%' . $searchData . '%')
    ->orWhere('email', 'like', '%' . $searchData . '%')
    ->limit(8)
    ->get();
       
return response()->json($users);

AND 和 OR 運算符的優先級相同,因此a AND b OR c OR d(((a AND b) OR C) or D)基本相同。 在您的情況下,您可能需要a AND (b OR c OR d)所以要實現這一點,您需要:

$searchData = $request->searchData;
$users = User::doesntHave('roles')
    ->where(function ($q) use ($searchData) {
        $q->where('id','like', '%' . $searchData . '%')
            ->orWhere('name', 'like', '%' . $searchData . '%')
            ->orWhere('email', 'like', '%' . $searchData . '%');
    })
    ->limit(8)
    ->get();
       
return response()->json($users);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM