Laravel получить данные с колонкой - PullRequest
0 голосов
/ 07 сентября 2018

столбцы таблицы планов идентификатор, имя, тип

столбцы таблицы клиентов id, name, plan_id

// for client

function plan(){
    return $this->belongsTo(Plan::class, 'plan_id', 'id');
}

Я ввожу plan_id в таблицу клиентов

Я хочу получить данные этих клиентов из таблицы клиентов, если тип плана = 'PP'

$clientData = Client::with(['plan' => function ($clientData) {
    $clientData->where('type', 'PP');
})->get();

Я пробовал это, но я получил все данные из таблицы клиентов.

1 Ответ

0 голосов
/ 07 сентября 2018

->with() не ограничивает данные из исходного запроса, он просто загружает их. Вам нужно использовать ->whereHas() для этого:

$clientData = Client::with(["plan"])
->whereHas("plan", function ($query) {
    $query->where("type", "=", "PP");
})->get();

Это вернет только Client записей, которые имеют Plan с типом PP.

...