Ну да, с другой стороны не думаю, что будет очень правильно забивать трекер тикетами вида "А вот в $model->attributes IDE не видит определения attributes". Не говоря уж об исключении cli и gii из дерева фреймворка (да, и еще yiilite.php). Не, ну директории то, конечно, можно и в игнор поставить, просто для меня это непривычно, долго искал где же это делается, а уж как отдельный файл заигнорить так и не нашел - пришлось yiilite.php удалить пока. Это скорее нужно писать плагины для IDE с поддержкой этого фреймворка.
[vs] Нет, не пишу, но вообще по идее он достаточно легковесен, что бы сделать на нём такое. Особенно WEB 2.0 делать на нём круто - все контролы как правило имеют AJAX действия, которые можно настроить. Единственное что модели жрут довольно много памяти, это теоретически может стать проблемой. Но есть DAO, которое избавляет от этой проблемы
Возвращаясь к спискам. Оформил свои словари как итераторы. Ну в фильтре тепереча нужно писать этажерку вида array('city', 'in', 'range' => array_keys(iterator_to_array(new CityDictionary()))) Может покрасивей что в голову придет? Хотя можно просто свой валидатор написать наверно. PS: да, пожалуй свой валидатор проще всего
MiksIr Между прочим валидатор делается очень просто PHP: <?php .... array('city', 'checkCity'), .... private function checkCity() { ... // If city was not found, set an error $this->addError('city', 'Please select city!'); } ...
private подойдёт, т.к. метод вызывается из самой модели же. А видеть валидатор за пределами объекта не нужно, т.к. валидация тригерится методом validate если нужно
Не совсем так. Там изнутри модели вызывается валидатор - отдельный созданный обект, которому передается эта модель как параметр и он уже изнутри себя дергает метод модели.
igordata Ссылку я могу найти сам. А вот по поводу версии я бы хотел узнать от того кто с этим постоянно имеет дело. Не от тебя. Жалко, что такие простые вещи приходится объяснять.
http://yiiframework.com Бери последню Stable, это 1.1.4. У них зоопарка нету. Лично я вообще живу на SVN версии.
Ребят, не хотите скинуться на прохождение курса А.Долгу "PHP MASTER 2. Курс PHP-программирования. Yii Framework. Интенсивное 2-х месячное обучение" (http://phpmaster.aself.ru/) и выложить все видосы и исходники на торрент? Цена курса 247$. если хотяб 20чел найти. получится около 500руб с каждого
Было бы интересно тоже посмотреть скриншоты CRUD. Уже давно обратил внимание на данного зверя, но както все не могу отойти от коханы. Вот эта штука неплохая конечно. особенно все это работает в окружении родного "приложения"
Коллеги! У меня внезапно в пятницу вечером вопрос! Как с помощью построителя запросов выполнить запрос в стиле: [sql]UPDATE sys_cron SET cr_datenext = DATE_ADD(cr_datenext, INTERVAL '$period' DAY_MINUTE) WHERE cr_id = 13[/sql] При этом колдунство с CDbExpression привело к фейлу, пришлось пока выкрутиться так: PHP: $command->update('{{sys_cron}}', array( 'cr_datenext' => date('Y-m-d H:i:s', mktime($_datenext_time[0] + $_period[0], $_datenext_time[1] + $_period[1], $_datenext_time[2] + $_period[2], $_datenext_date[1], $_datenext_date[2], $_datenext_date[0])), где $_datenext_date массив = explode('-', $_datenext[0]); но ведь это не годится! Как быть?
в каком формате должен быть период? я что=то не догнал.... и обязательно строитель нужен? А если просто - $sql = "UPDATE sys_cron SET cr_datenext = DATE_ADD(cr_datenext, INTERVAL '$period' DAY_MINUTE) WHERE cr_id = 13"; Yii::app()->db->createCommand($sql)->execute();
starkeen Это можно сделать даже с помощью модели, вот так: PHP: <?php // ActiveRecord style $model = SysCron::model()->findByPk(13); $model->cr_datenext = new CDbExpression('DATE_ADD(cr_datenext, INTERVAL :period DAY_MINUTE)', array('period' => $period); $model->save(); // SQL Builder style $sql = 'UPDATE sys_cron SET cr_datenext = DATE_ADD(cr_datenext, INTERVAL :period DAY_MINUTE) WHERE cr_id = :id'; $command = Yii::app()->getDb()->createCommand($sql); $command->execute(array(':id' => 13, ':period' => $period); Полное руководство по Yii всё же стоит прочитать, а так же заглядывать в API Reference
и спасибо! обязательно попробую ваши варианты. Просто с самого начала с AR не стал заморачиваться, нужно было скоренько готовое решение перенести на Yii.