Как получить список пользователей (id), добавивших контент, в определённую категорию. Весь model контроллера users пролистал, вроде функции не нашёл, в model контроллера content тоже вроде нет. Может экшн category_view контроллера content, метод run? Но там не понятно..) Помогите, если кому понятно, как решить вопрос!
Так попробуйте:
$cat_id = 5; /*Номер нужной категории написать вместо 5*/ /* Вместо news висать системное имя типа контента */
Я, правда, не проверял., некогда.
Если не важны записи с допкатегориями, то как-то так
$this->model_content->filterEqual('category_id', 5)->groupBy('user_id')->get('con_news', function ($item){ return $item['user_id']; });
Иначе надо джойнить таблицу с биндами категорий.
Если не важны записи с допкатегориями, то как-то так
$this->model_content->filterEqual('category_id', 5)->groupBy('user_id')->get('con_news', function ($item){ return $item['user_id']; });Иначе надо джойнить таблицу с биндами категорий.
Супер! Работает! Спасибо большое!
Так попробуйте:
$cat_id = 5; /*Номер нужной категории написать вместо 5*/ /* Вместо news висать системное имя типа контента */Я, правда, не проверял., некогда.
Спасибо! Ваш способ так же работает! Только почему-то ваши способы выдают разные ключи массива. У вас (Ris):
У Loadырь:
По сути, мне это не важно, мне главное id пользователей и в дальнейшем перебрать массив.
Если надо как у Ris, то тогда так
$this->model_content->filterEqual('category_id', 5)->groupBy('user_id')->get('con_news', function ($item){ return $item['user_id']; }, 'user_id');
У меня 1 и 13 — id записей, у него 1 и 3 — id пользователей
Если надо как у Ris, то тогда так
$this->model_content->filterEqual('category_id', 5)->groupBy('user_id')->get('con_news', function ($item){ return $item['user_id']; }, 'user_id');У меня 1 и 13 — id записей, у него 1 и 3 — id пользователей
Спасибо! Мне оба варианта подходят.
Но вот ещё один момент, а как из этого массива, убрать пользователей, у которых в таблице cms_users, в столбце unsubscribe стоит «1»?
Vladimir,
Loadырь более правильно написал. Я что-то не с той стороны к задаче подошел. 🙂
Vladimir,
Loadырь более правильно написал. Я что-то не с той стороны к задаче подошел. 🙂
Здорово конечно, но всё же повторюсь 🙂,
а как из этого массива, убрать пользователей, у которых в таблице cms_users, в столбце unsubscribe стоит «1»?
Нашёл способ получить всех пользователей с проставленной «1» в столбце unsubscribe
$users111 = cmsCore::getModel('users'); $users222 = $users111->filterEqual('unsubscribe', 1)->get('cms_users');
Или без «1»
$users111 = cmsCore::getModel('users'); $users222 = $users111->filterEqual('unsubscribe', 'Null')->get('cms_users');
Осталось найти способ, как получить нужных пользователей.
Наверное как-то через join
Наверное как-то через join
Именно
$this->model_content-> filterEqual('category_id', 5)-> filterIsNull('u.unsubscribe')-> joinUserLeft()-> groupBy('user_id')-> get('con_news', function ($item){ return $item['user_id']; }, 'user_id');
Наверное как-то через join
Именно
$this->model_content-> filterEqual('category_id', 5)-> filterIsNull('u.unsubscribe')-> joinUserLeft()-> groupBy('user_id')-> get('con_news', function ($item){ return $item['user_id']; }, 'user_id');
Супер! Спасибо!