я работаю в Yii, и у меня есть таблица с именем: посещениене в состоянии получить различные значения столбцов:
Она имеет два внешних ключей: from_user_id и to_user_id, которые связаны с таблицей «пользователя». Теперь визиты в таблицу имеют много одинаковых «from_user_id», и я хочу получить их в Yii как DISCTINCT.
Это мой код:
$visited = Visit::model()->findAllByAttributes(array('to_user_id'=>Yii::app()->user->id));
$criteria = new CDbCriteria();
$criteria->distinct = true;
foreach($visited as $visits){
echo User::model()->findByPk($visits->from_user_id,$criteria)->getFullName($visits->from_user_id);
echo " <br>";
}
Однако, я не могу получить их в отличие.
Это мой выход:
san
san
san
Leo
Leo
Я хочу, чтобы выход как:
San
Leo
Это не получает мне различные значения. Где я иду не так?
Но какие еще столбцы возвращаются? 'print_r ($ посещения)' в цикле. Просто потому, что значение 'from_user_id' не является отдельным в этом запросе, не означает, что оно не является частью более крупного отдельного набора данных. –
Я не достаточно знаком с рамкой Yii, чтобы узнать, что этот метод предназначен для получения _only_ одного столбца в запросе. –
MichaelBerkowski правильно, вам нужно указать Yii, чтобы выбрать только столбец 'from_user_id'. Это делается с помощью '$ criteria-> select = 'from_user_id';' 2. Поскольку у вас есть внешние ключи, вы также должны иметь соответствующие отношения. Скажите Yii, чтобы он мог загрузить отношение, соответствующее внешнему ключу 'from_user_id', и получить все ваши данные в одном запросе вместо N + 1. – DCoder