С недавнего времени стал активно осваивать Yii. До этого пользовался для небольших проектов CodeInteger. Но сейчас там, к сожаление всё заглохло. Зато о Yii активно слышно на каждом углу. Чтож, сделал пару проектов для внутренних нужд. Сейчас делаю скромненькое наружу. Вобщем здесь будет шпаргалка по некоторым возможностям и функциям Yii.
1 2 3 4 5 6 7 8 |
// Создает абсолютную ссылку к экшену в контроллере Yii::app()->createAbsoluteUrl('controller/action'); // Получаем урл на корень Yii::app()->request->getBaseUrl(true); // Редирект $this->redirect(Yii::app()->homeUrl); |
Немного по работе с куками
1 2 3 |
isset(Yii::app()->request->cookies['mycookie']->value) Yii::app()->request->cookies['mycookie'] = new CHttpCookie('mycookie', serialize($tarelka)); unset(Yii::app()->request->cookies['mycookie']); |
Ограничение доступа к контроллеру по маске IP:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
public function accessRules() { return array( array( 'allow', 'ips'=>array('85.19.*.*','134.18.*.*'), 'message'=>'Access Denied.', ), array( 'deny', 'users'=>array('*'), ), ); } |
Загрузка файла. То что во вьюхе писать не буду – очевидно. А контроллере типа:
1 2 3 4 5 6 7 |
if($img=CUploadedFile::getInstanceByName('file_input_name')) { // Rename and upload image $nameImg = time().'-'.rand(1,9999).'.'.$img->extensionName; $pathImg = YiiBase::getPathOfAlias('webroot').'/images/'.$nameImg ; $img->saveAs($pathImg); } |
Пример простой модели на ACtive Record
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
<?php class AzzModel extends CActiveRecord { public function tableName() { return 'azz_tbl'; } public function attributeLabels() { return array( 'field1' =>'Field 1', 'field2' =>'Field 2', ); } public function rules() { return array( array('field1,field2','safe'), ); } public static function model($className = __CLASS__) { return parent::model($className); } } |
24 ноября 2013 |
Раздел: Программирование |
Метки: php, yii