url маршрутизация, модули

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
nepster
Сообщения: 838
Зарегистрирован: 2013.01.02, 03:35

url маршрутизация, модули

Сообщение nepster »

Создал модуль:
\modules\cPanel\

CPanelModule.php

Код: Выделить всё

<?php

class CPanelModule extends CWebModule
{
    public function init()
    {
        $this->setImport(array(
            'cPanel.models.*',
            'cPanel.components.*',
        ));
    }

    public function beforeControllerAction($controller, $action)
    {
        if(parent::beforeControllerAction($controller, $action))
        {
            return true;
        }
        else
            return false;
    }
} 

Дефолтовый контроллейр HomeController.php

Код: Выделить всё

class HomeController extends Controller
{
    
    public function actionIndex()
    {
        // устанавливаем каркас        
        $this->layout = 'cpanel';
        
        // вид
        $this->render('index', array(
            'param'=>$param
        ));
    }
    
    
    
    // ОТЧЕТНОСТИ
    public function actionReporting(array $params)
    {
       print_r($params);
    }
     
запускаю сайт.ru/cPanel - все хорошо, все работает

запускаю сайт.ru/cPanel/Reporting - не могу попасть

пошел копать urlManager

Код: Выделить всё

'cPanel/reporting/<params:\w+>' => 'cPanel/home/reporting', 
не работает

так же не могу отключить регистр, сайт.ru/cpanel - так же не работает.

Подскажите пожалуйста в чем проблема ?

Аватара пользователя
Oscar
Сообщения: 35
Зарегистрирован: 2012.11.24, 10:46
Откуда: Baku
Контактная информация:

Re: url маршрутизация, модули

Сообщение Oscar »

Попробуй так у меня стработало

Код: Выделить всё

'<module:\w+>/<controller:\w+>/<action:\w+>/*'=>'<module>/<controller>/<action>'

nepster
Сообщения: 838
Зарегистрирован: 2013.01.02, 03:35

Re: url маршрутизация, модули

Сообщение nepster »

К сожалению все без изменения.

при запуске сайт.ru/cPanel/Reporting - попадаю вообще в контролер Page в метод actionError

Код: Выделить всё

<?php

class PageController extends Controller 
{
    
    public function actionIndex()
    {
        echo 'Страница';
    }

    public function actionError()
    {
        if($error=Yii::app()->errorHandler->error)
            $this->render('error', $error);
    }
}    

мой урл менеджер

Код: Выделить всё

        'urlManager'=>array(
            'urlFormat'=>'path',
            'showScriptName'=>false,
            //'caseSensitive' =>true,
            //'useStrictParsing'=>false,
            'rules'=>array(
            
                '/'      => 'home/index',
                
                '<module:\w+>/<controller:\w+>/<action:\w+>/*'=>'<module>/<controller>/<action>',
                
                '<controller:\w+>/<id:\d+>'=>'<controller>/view',
                '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
                '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
            ),
        ), 

приложил структуру. Подскажите пожалуйста в чем прикол ?
Вложения
1.jpg
1.jpg (41.2 КБ) 1915 просмотров

Аватара пользователя
Oscar
Сообщения: 35
Зарегистрирован: 2012.11.24, 10:46
Откуда: Baku
Контактная информация:

Re: url маршрутизация, модули

Сообщение Oscar »

ну да у вас не настроены роуты для модуля.кроме моего правила я других не вижу.Должно быть что-то вроде следующего

Код: Выделить всё

                '<module:\w+>'=>'<module>/home/index',
                '<module:\w+>/<controller:\w+>/<id:\d+>'=>'<module>/<controller>',
                '<module:\w+>/<controller:\w+>/<action:\w+>/<id:\d+>'=>'<module>/<controller>/<action>',
                '<module:\w+>/<controller:\w+>/<action:\w+>/*'=>'<module>/<controller>/<action>', 
                
 

nepster
Сообщения: 838
Зарегистрирован: 2013.01.02, 03:35

Re: url маршрутизация, модули

Сообщение nepster »

без изменения. Никакой реакции, еще вот, что странно:

/?r=cPanel/home/ - все хорошо
/?r=cPanel/home/reporting - все плохо

при такой записи уже урл менеджер вроде не должен иметь значения ? А всеравно не работает.

nepster
Сообщения: 838
Зарегистрирован: 2013.01.02, 03:35

Re: url маршрутизация, модули

Сообщение nepster »

вот отвечаю:

удалил старый Yii сделал чистую сборку, проделал все по новой. Я новичок, поэтому в 2 случаях использовал GII (для заготовки, так как не совсем еще понял структуру). Вот сделал все точно так-же все точь в точь повторил и все работает.

Разница была в том, что в 1 раз я ввел название модуля cPanel, в этот раз ввел cpanel.

в 1 варианте 'caseSensitive' =>false полностью тушило проэкт, ничего нечего не работало. Во второй раз все работает правильно.


как это вообще !?

Ответить