0

我正在使用 Yii 开发一个社交网站。虽然经常使用以下内容,但我遇到了很大的数据可管理性问题。- 用户 ID - 当前用户 ID(其个人资料是所有者查看的用户) - 是所有者???

我在哪里可以定义这些东西。我会喜欢

if(Yii::app()->owner==ME){
//do something
}
// and similarly
if($this->isMyFreind(<Current user ID>){
}
// $this(CanIView()){

}

我希望这些功能对任何页面都是公开的吗?但是怎么做?换句话说 ,我可以将包含我自己喜欢的功能(如文本缩短、图像裁剪、日期时间格式等)的库放在哪里?

4

3 回答 3

3

在 Yii 中,您可以通过创建一个继承的类(在受保护/组件下)来实现这一点

C应用组件

班级。然后你将这个类的任何属性全局调用为一个组件。

class GlobalDef extends CApplicationComponent {
 public $aglobalvar;
}

在组件下的主配置中定义此类:

'globaldef' => array('class' => 'application.components.GlobalDef '),

你可以这样调用:

echo Yii::app()->globaldef->aglobalvar;

希望能有所帮助。

于 2012-12-06T10:02:49.827 回答
1

根据 MVC 模型,诸如图像裁剪或日期时间格式之类的内容将包含在模型中。您只需为此创建模型。

于 2012-12-05T09:21:19.763 回答
0

我通常在 index.php 中使用包含所有常用功能的 globals.php 文件(是根目录中的那个):

$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()

于 2012-12-04T22:53:01.490 回答