【发布时间】:2013-01-26 04:35:27
【问题描述】:
Yii 提供基于 ORM 的开发,可以正常开发。我的问题是,在我的应用程序中有许多与用户相关的数据,例如用户信息、用户设置、用户偏好等。这里的用户是指当前登录的用户。
如果某处我需要用户的背景图片设置,我会执行以下操作
$user = User::model()->findByPk(Yii::app()->user->id);
$bgImage = $user->settings->backgroundImage;
我在需要背景图片的应用程序的其他地方重复同样的事情。 意味着再次创建 $user 的实例,我认为这不是一个好方法。 那么,有没有一种方法我们不需要一次又一次地实例化用户类??? 请记住,我不喜欢会话方法。
【问题讨论】:
-
创建一个 $appUser 类型的全局变量并实例化一个用户对象并分配给它,然后在任何 php 文件中使用该全局变量。在您想要获取所有内容的任何地方使用它,包括设置和您拥有的任何内容。您甚至可以更新查询以引入多个表以避免数据库故障。
标签: php session orm yii yii-cmodel