Прибавил к названию "Глава первая" так как, надеюсь, не последняя.
В ходе разработки продукта встречается много непонятных моментов, для решения которых используется Google или умные слова коллег, либо вчитывание в мануалы.
Хотелось бы помочь и сэкономить ваше время, если вдруг столкнётесь с такими же проблемами в будущем.
Самое главное – это, пожалуй, поддержка функций автозавершения кода Yii в IDE:
На примере NetBeans:
Правой клавишей мыши по названию проекта, в контекстном меню выбрать "Properties" (в самом низу).
В появившемся окне вкладка Php include path,в ней кликнуть по кнопке “Add folder” и указать путь к папке "framework".
Замена привыкшему использованию массивов $_REQUEST, $_POST, $_GET:
$request = Yii::app()->request;
Вместо $param = isset($_REQUEST['id']) ? $_REQUEST['id'] : 1; теперь нужно использовать $param = $request->getParam('id', 1);
Вместо $param = isset($_GET['id']) ? $_GET['id'] : null; - $param = $request->getQuery('id');
Вместо $param = isset($_POST['id']) ? $_POST['id'] : 1; - $param = $request->getPost('id', 1);
Ещё полезные методы:
Yii::app()->getRequest()->getUrl() - http://monoray.ru/forum/index?var=val
Yii::app()->getRequest()->getHostInfo() - http://monoray.ru/forum/index?var=val
Yii::app()->getRequest()->getPathInfo() - http://monoray.ru/forum/index?var=val
Yii::app()->getRequest()->getRequestUri() - http://monoray.ru/forum/index?var=val
Yii::app()->getRequest()->getQueryString() - http://monoray.ru/forum/index?var=val
Своё сообщение при выводе ошибки – параметр message:
Капча не обновляет код при ошибочном вводе – попробуйте так:
По-умолчанию, 'testLimit' установлен в значении 3. Поэтому код обновляется только после третьего неверного ввода.
Если при ajax запросе вам необходимо обновить часть страницы и загрузить все скрипты, то используйте:
Именно, последний параметр, установленный в true, сообщает что нужно отдавать страницу со всеми скриптами.
Меню на основе Cmenu, но вместо текста (label) необходимо изображение:
Есть два варианта:
Указываем путь к изображению в 'label' и устанавливаем 'encodeLabel' в значение false:
Используем template:
Иногда бывает необходимо в Javascript коде выполнять скрипт в зависимости от настроек в файле конфигурации (/protected/config/main.php)
Для того чтобы получить значение любого ключа в массиве params необходимо всего лишь добавить такой код:
И можем выводить интересующее нас значение: