select * from lime_group_l10ns where gid in (232, 234);
< /code>
Это дает: < /p>
+------+-----+----------------------+--------------+----------+
| id | gid | group_name | description | language |
+------+-----+----------------------+--------------+----------+
| 1340 | 232 | abc Q927 def | ghi Q926 jkl | en |
| 1342 | 234 | Question group three | | en |
+------+-----+----------------------+--------------+----------+
2 rows in set (0.00 sec)
< /code>
Пока все хорошо. Теперь я написал это: < /p>
$groups = QuestionGroupL10n::model()->findAll("gid in (232, 234)");
foreach ($groups as $group) {
echo $group->gid . "
";
}
< /code>
, который является эквивалентом данного запроса, который я дал, и я ожидаю, что он выведет < /p>
232
234
< /code>
Но это только отображает < /p>
234
< /code>
Таким образом, он, кажется, учитывает только последний элемент и пропускает тот, который до него до него. Я решил эту проблему через < /p>
$fields = ['description', 'group_name'];
foreach ($gids as $gid) {
if ($gid != 0) {
$group = QuestionGroupl10n::model()->find("gid=" . $gid);
if ($this->fixText($group, $fields, $names) || $this->fixText($group, $fields, $additionalNames)) {
$group->save();
}
}
}
< /code>
, где я зацикливаю идентификаторы группы, ранее рассчитанные, и делаю некоторые изменения, если это необходимо. Это работает. Но он выполняет индивидуальный запрос на каждую группу, которая не выглядит хорошо. Как я могу заставить YII1 Orm Findall
учитывать все задействованные элементы? Иногда я жажду писать необработанные запросы вместо ORM, и это именно такой момент. Можем ли мы сказать, что я просто что -то упускаю, и существует исправление, может быть, связано с использованием?
Я использую YII1 ORM, и я боролся в течение двух часов, чтобы выяснить проблему с Findall . Сначала давайте посмотрим на сырой запрос: < /p> [code]select * from lime_group_l10ns where gid in (232, 234); < /code> Это дает: < /p> +------+-----+----------------------+--------------+----------+ | id | gid | group_name | description | language | +------+-----+----------------------+--------------+----------+ | 1340 | 232 | abc Q927 def | ghi Q926 jkl | en | | 1342 | 234 | Question group three | | en | +------+-----+----------------------+--------------+----------+ 2 rows in set (0.00 sec) < /code> Пока все хорошо. Теперь я написал это: < /p> $groups = QuestionGroupL10n::model()->findAll("gid in (232, 234)"); foreach ($groups as $group) { echo $group->gid . " "; } < /code> , который является эквивалентом данного запроса, который я дал, и я ожидаю, что он выведет < /p> 232 234 < /code> Но это только отображает < /p> 234 < /code> Таким образом, он, кажется, учитывает только последний элемент и пропускает тот, который до него до него. Я решил эту проблему через < /p> $fields = ['description', 'group_name']; foreach ($gids as $gid) { if ($gid != 0) { $group = QuestionGroupl10n::model()->find("gid=" . $gid); if ($this->fixText($group, $fields, $names) || $this->fixText($group, $fields, $additionalNames)) { $group->save(); } } } < /code> , где я зацикливаю идентификаторы группы, ранее рассчитанные, и делаю некоторые изменения, если это необходимо. Это работает. Но он выполняет индивидуальный запрос на каждую группу, которая не выглядит хорошо. Как я могу заставить YII1 Orm Findall [/code] учитывать все задействованные элементы? Иногда я жажду писать необработанные запросы вместо ORM, и это именно такой момент. Можем ли мы сказать, что я просто что -то упускаю, и существует исправление, может быть, связано с использованием?
Я использую YII1 ORM, и я боролся в течение двух часов, чтобы выяснить проблему с Findall . Сначала давайте посмотрим на сырой запрос:
select * from lime_group_l10ns where gid in (232, 234);
Я использую YII1 ORM, и я боролся в течение двух часов, чтобы выяснить проблему с Findall . Сначала давайте посмотрим на сырой запрос:
select * from lime_group_l10ns where gid in (232, 234);
Я использую YII1 ORM, и я боролся в течение двух часов, чтобы выяснить проблему с Findall . Сначала давайте посмотрим на сырой запрос:
select * from lime_group_l10ns where gid in (232, 234);
Я использую YII1 ORM, и я боролся в течение двух часов, чтобы выяснить проблему с Findall . Сначала давайте посмотрим на сырой запрос:
select * from lime_group_l10ns where gid in (232, 234);
Я использую YII1 ORM, и я боролся в течение двух часов, чтобы выяснить проблему с Findall . Сначала давайте посмотрим на сырой запрос:
select * from lime_group_l10ns where gid in (232, 234);