|
|||||||
Ручное создание модели в Yii 1.x.x и ее использование в контроллере (пример)
Время создания: 24.09.2014 22:31
Автор: Xintrea
Текстовые метки: Yii, модель, контроллер, вид, база данных, вызов из контроллера, пример
Раздел: Компьютер - Программирование - Язык PHP - Yii
Запись: xintrea/mytetra_syncro/master/base/1411583465iufdciwn0t/text.html на raw.github.com
|
|||||||
|
|||||||
Все начинается с создания БД. Например, создана база users с полями id, name, lastname. Чтобы создать модель для этой базы данных, надо сделать следующее. В каталоге /protected/models надо создать файл User.php, и задать ему такое содержание: class User extends CActiveRecord { // Имя таблицы public function tableName() { return 'users'; // Надо возвращать '{{users}}', если в настройках есть префикс у таблиц } // Стандартный (обязательный) метод с описанием полей таблицы public function attributeLabels() { return array( 'id' => 'id', // Первый параметр - произвольное имя, второй параметр - имя поля БД 'name' => 'name', 'lastname' => 'lastname', ); } // Стандартный метод, который необходим для функционирования модели в фреймверке Yii // Возвращает экземляр объекта текущего класса модели public static function model($className=__CLASS__) { return parent::model($className); } } Получить данные из модели (в контроллере) можно, например, так: // Класс контроллера User class UserController extends Controller { // Эта переменная будет доступна при вызове вида (view) // она должна быть публичной public $_name;
// Действие по-умолчанию, оно будет вызвано при обращении к контроллеру public function actionIndex() { // Получение записи с id=3 в виде объекта с полями - именами полей БД $data = User::model()->findByPk(3);
$this->_name = $data->name; // Вызов отрисовки вида 'index' $this->render('index'); } } Вид index создается так. Файл вида должен располагаться так: /protected/views/user/index.php То есть, в каталоге /protected/views создается каталог user, который называется так же как и контроллер (только с маленькой буквы). Контроллер User в первую очередь будет искать вид в каталоге /protected/views/user. Содержимое файла /protected/views/user/index.php должно быть следующим: Привет <?php echo $this->_name; ?> Можно использовать и сокращенную запись (если позволяют настройки PHP): Привет <?$this->_name; ?> То есть, внутри скрипта представления экземпляр контроллера доступен через $this. Кроме того, в контроллере мы можем использовать следующий способ для передачи данных представлению (второй параметр): $this->render('edit', array(
'var1'=>$value1,
'var2'=>$value2,
));
Это и есть краткое описание механизма MVC в фреймверке Yii 1.x.x. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|