Php 如何包含Yii通用数据?
我知道如何在Yii中的helper类中包含公共函数。但是像下拉值这样的常用数据呢?如何访问Yii中的一些常见数据而不重复包含在许多文件中? 例如,数据库中的用户类型是varchar(1),在代码中我定义了一个数组,如: 用户类型数组Php 如何包含Yii通用数据?,php,yii,Php,Yii,我知道如何在Yii中的helper类中包含公共函数。但是像下拉值这样的常用数据呢?如何访问Yii中的一些常见数据而不重复包含在许多文件中? 例如,数据库中的用户类型是varchar(1),在代码中我定义了一个数组,如: 用户类型数组 'c'=>字符串'customer' 'o'=>string'官方 “f'=>字符串”财务 't'=>字符串'clearancer' 'a'=>字符串'administrator' 有很多这样的东西,我想知道什么是处理它的最好方法。由于PHP的性质,有直接的方法来实
'c'=>字符串'customer'
'o'=>string'官方
“f'=>字符串”财务
't'=>字符串'clearancer'
'a'=>字符串'administrator'
有很多这样的东西,我想知道什么是处理它的最好方法。由于PHP的性质,有直接的方法来实现它。我通过创建类来存储公共数据来实现这一点,比如:
class GlobalData {
const USER_TYPE_CUSTOMER = 'c';
static function getUserTypes(){
return array(
'c' => string 'customer',
'o' => string 'official',
'f' => string 'financial,
't' => string 'clearancer',
'a' => string 'administrator');
}
}
然后我使用它,就像:
$userType=GlobalData::getUserTypes();
echo$userType[USER_TYPE_CUSTOMER]//显示客户的用户类型的步骤
但是有一个方法(为了节省时间,但就像我告诉你的那样),你应该去看看
希望这会对您有所帮助,我不确定这是否是您想要的。由于PHP的性质,有直接的方法来实现这一点。我通过创建类来存储公共数据来实现这一点,比如:
class GlobalData {
const USER_TYPE_CUSTOMER = 'c';
static function getUserTypes(){
return array(
'c' => string 'customer',
'o' => string 'official',
'f' => string 'financial,
't' => string 'clearancer',
'a' => string 'administrator');
}
}
然后我使用它,就像:
$userType=GlobalData::getUserTypes();
echo$userType[USER_TYPE_CUSTOMER]//显示客户的用户类型的步骤
但是有一个方法(为了节省时间,但就像我告诉你的那样),你应该去看看
希望这对您有所帮助,我不确定这是否是您想要的。什么样的数据?你能举个例子吗?一般来说,创建自定义模型是一个合理的选择。我更新了这个问题。您是否已经有了一个
用户
模型,该模型的属性被分配了这些值?我有一个用户模型,但我不知道如何在用户模型中分配这些值!什么样的数据?你能举个例子吗?一般来说,创建自定义模型是一个合理的选择。我更新了这个问题。您是否已经有了一个用户
模型,该模型的属性被分配了这些值?我有一个用户模型,但我不知道如何在用户模型中分配这些值!我也这样做。但是对于用户类型,我会在user
模型中创建一个静态方法optstType()
或types()
。是的,您的注释是将所有与模型相关的数据保留在模型中的方法。这没关系,但是在一些较旧的php版本(如5.1.6)中,无法获得这样的元素:GlobalData::getUserTypes()['f']有时候,直接获取数组的元素是非常重要的。例如,在cgridview中,user type的值是一个字符串,稍后将对其求值,因此不能在一个命令中获取它。但是对于用户类型,我会在user
模型中创建一个静态方法optstType()
或types()
。是的,您的注释是将所有与模型相关的数据保留在模型中的方法。这没关系,但是在一些较旧的php版本(如5.1.6)中,无法获得这样的元素:GlobalData::getUserTypes()['f']有时候,直接获取数组的元素是非常重要的。例如,在cgridview中,user type的值是一个字符串,稍后将进行计算,因此不能在一个命令中获取该值。