Yii Active Records - передача массива и получение связанных полей// with AR - передача во views
Primary tabs
пусть мы имеем описание message (связь с таблицей User) =
public function relations() // задаём отношения с другими классами (User) { return array( 'user' => array(self::BELONGS_TO, 'User', 'user_id') ); }
пусть мы извлекаем в дейсвие данные так чтобы кроме сообщений получить и имена пользователей (то есть происходит связывание таблиц средствами Active Record) =
public function actionMessageList() { //SomeActiveRecord::model()->findAll(array('order'=>'somefieldfield')); //далее сортировка по дате в обратном порядке (новые выше) // при этом $msgs->user будет хранить объект user, поля которого // будут соответствовать полям записи в БД для пользователя оставившего // данное (конкретное из массива) сообщение $msgs = Message::model()->with('user')->findAll(array('order'=>'date DESC')); $this->render('messagelist',array('msgs'=>$msgs)); // var_dump($m); }
так как объект user теперь хранится в поле каждого элемента массива $msgs, то обратиться к данным можно например так(пример представления):
<h2>Список сообщений </h2> <?php echo CHtml::link('На главную', array('site/index')); ?> <table> <tr> <td>Имя пользователя</td> <td>Номер сообщения</td> <td>Текст сообщения</td> </tr> <?php foreach ($msgs as $msg): ?> <tr> <td><?php echo $msg->user->username; ?> </td> <td> <?php echo $msg->id; ?> </td> <td> <?php echo $msg->text; ?></td> </tr> <?php endforeach; ?> </table>
- Log in to post comments
- 2670 reads