Unable to resolve the request "gii".

Hi,

I’m reading the book Agile WebApplication Development with Yii1.1 and PHP5 and I’m trying to install and use gii.

My problem is, that if I go on http://localhost/track/index.php/gii I got the following error message:

Unable to resolve the request "gii".

Does somebody has an idea?

thx

here my main.php


return array(

'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',

'name'=>'My Web Application',


// preloading 'log' component

'preload'=>array('log'),


// autoloading model and component classes

'import'=>array(

	'application.models.*',

	'application.components.*',

),


// application components

'components'=>array(

	'user'=>array(

		// enable cookie-based authentication

		'allowAutoLogin'=>true,

	),

	// uncomment the following to enable URLs in path-format

	'urlManager'=>array(

		'urlFormat'=>'path',

		'urlSuffix'=> '.html',

		'rules' => array

		(

			'<controller:\w+>/<id:\d+>'	=>	'<controller>/view',

			'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',

			'<controller:\w+>/<action:\w+>'	=>	'<controller>/<action>',


			'gii'					=>	'gii',

			'gii/<controller:\w+>'			=>	'gii/<controller>',

			'gii/<controller:\w+>/<action:\w+>'	=>	'gii/<controller>/<action>',


		),

	),

//		'db'=>array(

//			'connectionString' => 'sqlite:'.dirname(__FILE__).'/../data/testdrive.db',

//		),

		// uncomment the following to use a MySQL database


		'db'=>array(

			'connectionString'	=> 'mysql:host=localhost;dbname=track',

			'emulatePrepare'	=> true,

			'username'			=> 'root',

			'password'			=> '',

			'charset'			=> 'utf8',

		),


		'errorHandler'=>array(

			// use 'site/error' action to display errors

            'errorAction'=>'site/error',

        ),

		'log'=>array(

			'class'=>'CLogRouter',

			'routes'=>array(

				array(

					'class'=>'CFileLogRoute',

					'levels'=>'error, warning',

				),

				// uncomment the following to show log messages on web pages

				/*

				array(

					'class'=>'CWebLogRoute',

				),

				*/

			),

		),

		'modules' => array(

			'gii' => array(

				'class'		=> 'system.gii.GiiModule',

				'password'	=> 'pass',

			),

		),

	),


	// application-level parameters that can be accessed

	// using Yii::app()->params['paramName']

	'params'=>array(

		// this is used in contact page

		'adminEmail'=>'webmaster@example.com',

	),

);




return array(

...

'modules' => array(...),

'components' => array(...)

...

);



your code is wrong




return array(

...

'components' => array(

    'modules' => array()

)

...

);



During development environment you should put it like :-

'modules'=&gt;array(


	// uncomment the following to enable the Gii tool


	


	'gii'=&gt;array(


		'class'=&gt;'system.gii.GiiModule',


		'password'=&gt;'softin99',


	 	// If removed, Gii defaults to localhost only. Edit carefully to taste.


		'ipFilters'=&gt;array('127.0.0.1','::1'),


	),


[b]'admin',[/b]


),

But in Production you should comment in "gii module" for security reasons and should put your module after component like this (be care full it should not present within component block) :-

'modules'=&gt;array(


	[b]'admin',[/b]


),