Попытка получить записи о ключевых ключах, где все связанные записи неактивны (Laravel Elequent запрос) - PullRequest
0 голосов
/ 09 июля 2019

У меня есть 2 таблицы

Category's ( id, name )
Sub_categories ( id, key, value, category_id )

Я пытаюсь получить все категории, чьи все sub_categories деактивированы ( means are soft-deleted )

позвольте мне объяснить больше

у меня есть sub_categories данные, подобные этим

    [
    {
        "id": 1,
        "category_id": 1,
        "key": "sub 1",
        "value": "sub_1",
        "deleted_at": null
    },
    {
        "id": 2,
        "category_id": 1,
        "key": "sub 2",
        "value": "1",
        "deleted_at": null
    },
    {
        "id": 4,
        "category_id": 1,
        "key": "sub 3",
        "value": "1",
        "deleted_at": "2019-07-09 06:06:01"
    },
    {
        "id": 5,
        "category_id": 2,
        "key": "sub 1",
        "value": "33",
        "deleted_at": "2019-07-09 06:06:01"
    },
    {
        "id": 6,
        "category_id": 2,
        "key": "sub 2",
        "value": "33",
        "deleted_at": "2019-07-09 06:06:01"
    }
]

я хочу только category_id -> 2 (где все sub_categories softedeleted)

код модели категории слуха

    public function subCategory() {
         $this->makeVisible('deleted_at');
         return $this->hasMany('App\SubCategory','category_id','id');
    }

Ответы [ 3 ]

0 голосов
/ 09 июля 2019

Получить идентификаторы категорий с подкатегориями:

$categoryIdsWithSubCategories = SubCategory::get()->pluck('category_id')->toArray();

Получить категории без подкатегорий:

$categoriesWithoutSubCategories = Category::whereNotIn('id', $categoryIdsWithSubCategories)->get();

0 голосов
/ 09 июля 2019
$categories = Categories::doesntHave('subCategory')->get();
0 голосов
/ 09 июля 2019

сначала нужно определить отношения между Categorys и Sub_categories - https://laravel.com/docs/5.8/eloquent-relationships. Затем используйте запрос, чтобы получить то, что вы хотите https://laravel.com/docs/5.8/queries

...