Получите модели, имеющие определенную ценность в отношениях.Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Получите модели, имеющие определенную ценность в отношениях.

Сообщение Anonymous »

Я пытаюсь фильтровать «действия» в соответствии с заданными категориями, категории действий задаются отношением ownToMany.

Можно ли фильтровать действия разрешить только те категории, которые имеют (или не содержат) категории внутри массива $categories?

После поиска в основном по SO я узнал, что может быть выполнена функция «линия» внутри оператора with, и я попытался использовать Модификатор 'wherePivotIn' думает, что он отфильтрует опорную точку 'id_category', чтобы она была в списке, но я получаю неопределенную ошибку переменной в $categories.

Если это не работает, есть ли у кого-нибудь хорошее решение для фильтрации моделей по одному из их отношений?

Внутри контроллера

Код: Выделить всё

public function get_activity_cat($categories_db){

$categories = [];
foreach (json_decode($categories_db) as $key => $value) {
array_push($categories, $value->id);
}

return Activity::select('id', 'name_spa', 'name_eng', 'price')
->with('covers')
->with('languages')
->with([ 'categories' => function($query){ $query->wherePivotIn('id_category', $categories); } ])
->get()
->toJson()
;

}
Моя модель

Код: Выделить всё

class Activity extends Model
{
protected  $primaryKey = 'id';
public function covers()
{
return $this->belongsToMany('App\Cover', 'activities_covers', 'id_activity', 'id_cover')
->select(array('id', 'name_spa', 'name_eng'));
}

public function languages()
{
return $this->belongsToMany('App\Language', 'activities_languages', 'id_activity', 'id_language')
->select(array('id', 'id_lang', 'lang_name'));
}

public function categories()
{
return $this->belongsToMany('App\Category', 'activities_categories', 'id_activity', 'id_category');
}
}
----РЕДАКТИРОВАТЬ----

Благодаря комментарию LC Yoong, ошибка неопределенной переменной решена, но у меня нет решения.

Этот метод только фильтрует результат связи, но не исключает «активность», когда опорная точка отсутствует в массиве $categories.

Подробнее здесь: https://stackoverflow.com/questions/513 ... lationship
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Ларавел получает только модели, где все отношения имеют определенную ценность
    Anonymous » » в форуме Php
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Ларавел получает только модели, где все отношения имеют определенную ценность
    Anonymous » » в форуме Php
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Tempdata ведет себя непоследовательно - иногда хранит последнюю ценность, иногда старую ценность
    Anonymous » » в форуме C#
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Получите реальную ценность от ValueKind
    Anonymous » » в форуме C#
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Получите реальную ценность от ValueKind
    Anonymous » » в форуме C#
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Php»