Yii Active Records - передача массива и получение связанных полей// with AR - передача во views

пусть мы имеем описание message (связь с таблицей User) =

 public function relations() //  задаём отношения с другими классами (User)
    {
        return array(
            'user' => array(self::BELONGS_TO, 'User', 'user_id')
        );
    }

пусть мы извлекаем в дейсвие данные так чтобы кроме сообщений получить и имена пользователей (то есть происходит связывание таблиц средствами Active Record) =

Yii Как добавить новое действие к контроллеру

просто создаём новый метод , название которого начинается на action =

Конфигурационный файл Yii

<?php

return array(
    //путь к корню нашего сайта
    'basePath' => realpath(dirname(__FILE__) . '/..'),
    //пути к директориям,скрипты из которых
    //следует подключить
    'import' => array(
        'application.models.*',
        'application.components.*',
    ),
    // прописываем конфигурацию для компонентов приложения
    'components' => array(
        'db' => array(
            'connectionString' => 'mysql:host=localhost;dbname=base1',
            'emulatePrepare' => true,
            'username' => 'root',

yii order desc - сортировка в обратном порядке

как вариант можно использовать добавку DESC к параметру order:

$msgs = Message::model()->findAll(array('order'=>'date DESC'));

Yii передать массив в представление

иллюстрирую - пусть у нас есть контроллер =

 public function actionMessageList()
    {
        $msgs = Message::model()->findAll();
        $this->render('messagelist',array('msgs'=>$msgs));
       // var_dump($m);
    }

а вот обработка переданного массива в представлении:

вывод ссылки Yii

выводить ссылки нужно так =

<?php echo CHtml::link('На главную', array('site/index')); ?>

Модель Yii - простой пример - используем Active Record

создаём вручную две модели.
- сначала таблицы в базе данных - user и сообщение.
SQL можно взять отсюда
только уберём e-mail =

CREATE TABLE `user` (
    id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(128) NOT NULL,
    password VARCHAR(128) NOT NULL
);
 
CREATE TABLE `message` (
  id  INT(11) NOT NULL AUTO_INCREMENT  PRIMARY KEY,
  user_id INTEGER,
  text VARCHAR(500),
  date TIMESTAMP,
  FOREIGN KEY (user_id) REFERENCES  user(id)
  );

Active Record Yii описание

хорошее описание на официальном сайте = http://www.yiiframework.com/doc/guide/1....

active records PHP

ActiveRecord (AR) - является популярным способом доступа к данным реляционных баз данных в объектно-ориентированном программировании.

В частности реализован в Yii

Pages

Subscribe to fkn+antitotal RSS