Он не возвращает название. Итак, что я могу изменить в запросе?Используйте select, где в запросе в yii2
$query = (new Query())->select('title')->from('topics')->where(['id' => [1, 2, 3]]);
return $query->title;
Он не возвращает название. Итак, что я могу изменить в запросе?Используйте select, где в запросе в yii2
$query = (new Query())->select('title')->from('topics')->where(['id' => [1, 2, 3]]);
return $query->title;
Ваш запрос формируется что-то вроде -
SELECT title FROM topics WHERE id IN (1,2,3);
Таким образом, вы получите массив массив. Также вам нужно выполнить запрос.
Try -
$query = (new \yii\db\Query())->select(['title'])->from('topics')->where(['id' => [1, 2, 3]]);
$command = $query->createCommand();
$data = $command->queryAll();
$titles = '';
foreach($data as $row) {
$titles .= $row['title'] . ', ';
}
return rtrim($titles, ', ');
Вы получите title
для каждой записи, разделенных запятыми.
Если вышеприведенный ответ сработал хорошо для вас, тогда примите ответ так, чтобы он был не перечисленные в списке «Без ответа». –
[
'attribute' => 'topic_id',
'format' => 'raw',
'value' => function($data){
$query = (new Query())->select(['title'])->from('topics')->where(['id' => [1, 2, 3]]);
$command = $query->createCommand();
$data= $command->queryAll();
foreach($data as $row)
return $data['title'];
}
],
m положить этот код, но здесь ошибка генерировать это.
Undefined индекс: название
заголовок для таблицы тем.
Скажите, что вы получаете все 3 записи, тогда вам нужно отображать их как разделенные запятыми или что-то в этом роде? –
Обновлен ответ. Он будет возвращать разделенные запятыми заголовки, но если вам нужно вернуться в другом формате, измените соответствующим образом. –
благодарю вас за правильную работу – cms
Попробуйте этот код:
$users=[1,2,3];
User::find()->where('id IN('.$users.')');
Проверьте следующие ссылки. Может быть полезно http://stackoverflow.com/questions/25469689/yii2-update-field-with-query-builder/25580836#25580836 – Kshitiz