FORMAT_JSON и JOIN в выборке

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
lunberg88
Сообщения: 8
Зарегистрирован: 2017.03.29, 19:19

FORMAT_JSON и JOIN в выборке

Сообщение lunberg88 »

День добрый.
Есть 3 таблицы (новости, категории, юзеры).
Контроллер новостей:

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

	public function actionAjax()
	{
		\Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
		$allnews = News::find()
			->select('`news`.*, `category`.`cat_name`, `user`.`username`')
			->leftJoin('category', '`category`.`id` = `news`.`cat_id`')
			->leftJoin('user', '`user`.`id` = `news`.`user_id`')
       		        ->with('user', 'category')
            		->all();
			
			return [
				'allnews' => $allnews,
			];
	}
Собственно получаю JSON, но данные получены join'ом(имя юзера и название категории) почему-то в json не попадают. Подскажите пожалуйста, каким образом подправить это?
phpshko
Сообщения: 260
Зарегистрирован: 2015.03.21, 02:49

Re: FORMAT_JSON и JOIN в выборке

Сообщение phpshko »

замените на

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

->select(['`news`.*', '`category`.`cat_name`', '`user`.`username`'])
upd
Аватара пользователя
lunberg88
Сообщения: 8
Зарегистрирован: 2017.03.29, 19:19

Re: FORMAT_JSON и JOIN в выборке

Сообщение lunberg88 »

phpshko писал(а): 2017.07.06, 13:59 замените на

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

->select(['`news`.*', '`category`.`cat_name`', '`user`.`username`'])
upd
К сожалению не помогает...
phpshko
Сообщения: 260
Зарегистрирован: 2015.03.21, 02:49

Re: FORMAT_JSON и JOIN в выборке

Сообщение phpshko »

попробуйте еще так

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

$allnews = News::find()
			->select('`news`.*, `category`.`cat_name`, `user`.`username`')
			->leftJoin('category', '`category`.`id` = `news`.`cat_id`')
			->leftJoin('user', '`user`.`id` = `news`.`user_id`')
       		        ->with('user', 'category')
       		        ->asArray()
            		->all();
Аватара пользователя
lunberg88
Сообщения: 8
Зарегистрирован: 2017.03.29, 19:19

Re: FORMAT_JSON и JOIN в выборке

Сообщение lunberg88 »

phpshko писал(а): 2017.07.06, 14:13 попробуйте еще так

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

$allnews = News::find()
			->select('`news`.*, `category`.`cat_name`, `user`.`username`')
			->leftJoin('category', '`category`.`id` = `news`.`cat_id`')
			->leftJoin('user', '`user`.`id` = `news`.`user_id`')
       		        ->with('user', 'category')
       		        ->asArray()
            		->all();
Спасибо за помощь!)
Вопрос решён)
Ответить