[英]Yii alias not working in my main.php
I'm trying to create a site
alias in my frontend/config/main.php
but it doesn't seem to import all the classes from my common/components/
我正在尝试在
frontend/config/main.php
创建一个site
别名,但是它似乎没有从common/components/
导入所有类。
here is my file structure 这是我的文件结构
backend/
common/
components/
Globals.php
config/
params.php
params-local.php
lib/
yii/
migrations/
models/
Comment.php
Extension.php
...
console/
commands/
SitemapCommand.php
...
config/
main.php
main-local.php
params.php
params-local.php
runtime/
yiic.php
frontend/
components/
config/
main.php
main-local.php
params.php
params-local.php
controllers/
SiteController.php
...
lib/
models/
ContactForm.php
SearchForm.php
runtime/
views/
layouts/
site/
www/
assets/
css/
js/
index.php
yiic
yiic.bat
this is what i have so far 这就是我到目前为止
$root=dirname(__FILE__).'/../..';
//define a path alias, site
Yii::setPathOfAlias('site',$root);
//merging together our frontend params with our common application params
$params=array_merge(
require($root.'/common/config/params.php'),
require($root.'/frontend/config/params.php')
);
return array(
'name'=>'site name',
'basePath'=>$root.'/frontend',
// application-level parameters that can be accessed
// using Yii::app()->params['paramName']
'params'=>$params,
// preloading 'app' component in frontend/extensions
'preload'=>array('log','app'),
// auto loading model and component classes from this application and our common application
'import'=>array(
'site.common.components.*',
'site.common.models.*',
'site.common.extensions.mailer.components.*',
'application.components.*',
'application.models.*',
),
.......
);
everything using the site alias isn't loaded here. 使用站点别名的所有内容都不会在此处加载。 When i call
Globals::isAdmin();
当我打电话给
Globals::isAdmin();
in my footer.php, i get an error. 在我的footer.php中,出现错误。
Fatal error: Call to undefined method Globals::isAdmin() in /Library/WebServer/Documents/dev/frontend/views/layouts/footer.php on line 81
my $root
is set too 我的
$root
也被设置
/Library/WebServer/Documents/dev/frontend/config/../..
my Global class looks like this 我的全球班级看起来像这样
class Globals {
/*
* Check if user is an admin
*/
public static function isAdmin()
{
$testId = Yii::app()->user->id;
$role = User::model()->findByPk($testId);
return ($role['role'] == 1) ? true : false;
}
}
Any idea what i'm missing or doing wrong? 知道我丢失或做错了什么吗? Thanks
谢谢
May be your param merging has some problem because as you set $root and again in your require /frontend/config/params.php 可能是您的参数合并有一些问题,因为在您设置$ root并再次在您的require /frontend/config/params.php中设置
/Library/WebServer/Documents/dev/frontend/config/../..
$params=array_merge(
require($root.'/common/config/params.php'),
require($root.'/frontend/config/params.php')
);
figured it out. 弄清楚了。 i had duplicate global classes in my
common.components.
我的
common.components.
有重复的全局类common.components.
and frontend.components.
和
frontend.components.
folders. 文件夹。 silly me
傻我
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.