Я просто реализовал пространства имен в моем маленьком приложении, как описано здесь: http://www.yiiframework.com/doc/guide/1.1/en/basics.namespace
Я Yii::app()->getRequest();
с проблемой, когда мой контроллер больше не будет обращаться к Yii::app()->getRequest();
что он не может найти include(C:\Users\bkuhl\htdocs\instaLabel\application\protected\components\Yii.php): failed to open stream: No such file or directory
.
Я понимаю, это потому, что я объявил пространство имен как приложение / компоненты. Но я не уверен, как обойти этот …
<?php namespace application\components; /** * Controller is the customized base controller class. * All controller classes for this application should extend from this base class. */ class Controller extends \CController { /* @var $request CHttpRequest */ protected $request = null; /** * @var string the default layout for the controller view. Defaults to '//layouts/column1', * meaning using a single column layout. See 'protected/views/layouts/column1.php'. */ public $layout='//layouts/column1'; /** * @var array context menu items. This property will be assigned to {@link CMenu::items}. */ public $menu=array(); /** * @var array the breadcrumbs of the current page. The value of this property will * be assigned to {@link CBreadcrumbs::links}. Please refer to {@link CBreadcrumbs::links} * for more details on how to specify this property. */ public $breadcrumbs=array(); public function __construct ($id, $module = null) { parent::__construct($id, $module); $this->request = Yii::app()->getRequest(); }
Вы должны полностью квалифицировать относительное имя класса Yii
.
Самый удобный способ сделать это – импортировать класс: просто добавьте use Yii;
ниже вашего объявления пространства имен.
Ты пробовал:
$this->request = \Yii::app()->getRequest();
\
будет использовать глобальное пространство имен :
Префикс имени с \ укажет, что имя требуется из глобального пространства даже в контексте пространства имен.