вернуть, если id не ноль, laravel elequent - PullRequest
1 голос
/ 21 октября 2019

Я подключил таблицы с отношением hasMany & belongsTo.

Модель для новобрачных:

public function plans()
{
    return $this->hasMany("App\Plan");
}

Модель плана:

public function bridal()
{
    return $this->belongsTo("App\Bridal");
}

И у меня есть запрос, который возвращает эти данные в конечную точку.

public function bridal()
{

    $bridals = Bridal::with(["plans" => function($query){
        $query->orderBy("plans.plan_price");
    }])
    ->groupBy("place_name")
    ->get();


    return $bridals;

}

Все хорошо, кроме одного. В таблице для новобрачных некоторые удостоверения личности не имеют плана. Поэтому, когда я возвращаю данные, некоторые из bridal id поставляются с пустым массивом Plans.

enter image description here

Я хочу предотвратить это. Если у bridal id нет плана, то я не хочу возвращать этот свадебный идентификатор. Как я могу достичь того, что я хочу здесь?

Ответы [ 2 ]

2 голосов
/ 21 октября 2019

Вы можете использовать Имеет . Если вы просто используете has('relation'), это означает, что вы хотите получить только модели, имеющие хотя бы одну связанную модель в этом отношении.

$bridals = Bridal::with(["plans" => function($query){
        $query->orderBy("plans.plan_price");
    }])->has('plans')
    ->groupBy("place_name")
    ->get();

Проверьте дополнительную информацию SO ответ

1 голос
/ 21 октября 2019

Добавьте whereHas () в свой запрос: так вы получите свадебные записи с планами

$bridals = Bridal::with(["plans" => function($query){
       $query->orderBy("plans.plan_price");
   }])
   ->whereHas('plans')
   ->groupBy("place_name")
   ->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...