我正在使用Yii开发一个社交网站。虽然经常使用以下内容,但我遇到了很好的数据可管理性问题。 - 用户身份 - 当前用户ID(用户查看所有者的配置文件) - 是老板???
我在哪里可以定义这些东西。 我会喜欢
if(Yii::app()->owner==ME){
//do something
}
// and similarly
if($this->isMyFreind(<Current user ID>){
}
// $this(CanIView()){
}
我希望这些功能对任何页面都公开吗?但是怎么样? 换一种说法 哪里可以放置包含我自己喜欢的功能的库,如文本缩短,图像裁剪,日期时间格式等等?
答案 0 :(得分:3)
在Yii中,你可以通过创建一个继承
的类(在protected / compoents下)来实现这一点。CApplicationComponent
类。然后,您将此类的任何属性全局调用为组件。
class GlobalDef extends CApplicationComponent {
public $aglobalvar;
}
在组件下的主配置中将此类定义为:
'globaldef' => array('class' => 'application.components.GlobalDef '),
你可以这样打电话:
echo Yii::app()->globaldef->aglobalvar;
希望可以提供帮助。
答案 1 :(得分:1)
根据MVC模型,图像裁剪或日期时间格式等内容会出现在模型中。你只需要为它创建模型。
答案 2 :(得分:0)
我通常使用带有所有常用功能的globals.php文件 在index.php中(根据root中的那个):
$globals='protected/globals.php';
require_once($globals);
然后我可以在任何地方调用我的全局函数。例如,我缩短了某些Yii函数,如:
function bu($url=null){
static $baseUrl;
if ($baseUrl===null)
$baseUrl=Yii::app()->request->baseUrl;
return $url===null ? $baseUrl : $baseUrl.'/'.ltrim($url,'/');
}
所以我可以通过简单地调用Yii::app()->request->baseUrl
bu()