我在从 laravel eloquent 关系中获取数据时遇到了逻辑错误
I have encountered an logical error about fetching data from laravel eloquent relationship
我有两个模型 Client 和 Group。
这是多对多关系,其中客户属于多个组,并且组有多个客户。
我想获取所有不属于某个组的客户端并将其传递给视图。
组模型:
public function clients() {
return $this->belongsToMany('App\Models\Client', 'client_group', 'group_id', 'client_id');
}
客户端模型:
public function documents() {
return $this->belongsToMany('App\Models\Document', 'client_document', 'client_id', 'document_id');
}
GroupsController.php
public function edit($id)
{
$group = Group::find($id);
$clients = Client::all()->where('user_id', Auth::user()->id);
return view('backend.groups.edit', compact('group', 'id', 'clients'));
}
如果我理解正确,您需要不属于某个组的客户。本质上,您需要查询关系缺失:
$clients = App\Client::doesntHave('groups')->get();
如果您希望能够添加额外的 where 子句:
use Illuminate\Database\Eloquent\Builder;
...
$clients = App\Client::whereDoesntHave('groups', function (Builder $query) {
$query->where('active', '=', true);
})->get();
有关详细信息,请参阅 Querying Relations
我有两个模型 Client 和 Group。
这是多对多关系,其中客户属于多个组,并且组有多个客户。 我想获取所有不属于某个组的客户端并将其传递给视图。
组模型:
public function clients() {
return $this->belongsToMany('App\Models\Client', 'client_group', 'group_id', 'client_id');
}
客户端模型:
public function documents() {
return $this->belongsToMany('App\Models\Document', 'client_document', 'client_id', 'document_id');
}
GroupsController.php
public function edit($id)
{
$group = Group::find($id);
$clients = Client::all()->where('user_id', Auth::user()->id);
return view('backend.groups.edit', compact('group', 'id', 'clients'));
}
如果我理解正确,您需要不属于某个组的客户。本质上,您需要查询关系缺失:
$clients = App\Client::doesntHave('groups')->get();
如果您希望能够添加额外的 where 子句:
use Illuminate\Database\Eloquent\Builder;
...
$clients = App\Client::whereDoesntHave('groups', function (Builder $query) {
$query->where('active', '=', true);
})->get();
有关详细信息,请参阅 Querying Relations