Hey guys,
I created a controller 'PageController.php' with a default action 'actionShow' like this:
public function actionShow( $slug = '' ) {
if ( empty( $slug ) ) {
$model=Pages::model()->findByAttributes( array( 'slug' => 'accueil' ) );
}
else {
$model = Pages::model()->find('slug = :slug', array(':slug' => $slug));
if($model===null) {
throw new CHttpException(404,'The requested page does not exist.');
}
}
$this->render('page', array(
'model' => $model,
'slug' => $slug,
));
}
Then I created a module (and this is where things got problems) called "admin", and declared it in config/main.php
And I set up the urls in config/main.php like that:
'urlManager'=>array(
'urlFormat'=>'path',
'showScriptName'=>false,
'rules'=>array(
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
'<module:\w+>/<controller:\w+>/<action:[0-9a-zA-Z_\-]+>/<id:\d+>' => '<module>/<controller>/<action>',
'<module:\w+>/<controller:\w+>/<action:[0-9a-zA-Z_\-]+>' => '<module>/<controller>/<action>',
'<module:\w+>/<controller:\w+>' => '<module>/<controller>/index',
'<slug:\w+>'=> 'page/show',
),
),
The problem is when I call the page : maydomain.com/admin, it been processed as a slug for the page and not as a module, I fixed in the actionShow by :
Is there is a way more clean than this ?