我刚开始在Yii中开发我的新项目,我对Yii以及框架和MVC结构都很陌生。
我想得到一些关于为该表制作元表和模型的建议。假设我喜欢为一个用户存储几个聊天句柄。我创建了一个表来存储用户详细信息,如user_id、user_name、email。和另一个表,它是我的元表,具有结构id、user_id、key、value。
我想将这两个表关联到一个模型中,这样我就可以访问存储在元表中的键的值,比如$user->yahoo。
提前谢谢。
发布于 2012-01-20 11:42:17
只需为元表和主表创建一个模型。然后,如果您与此表有一个model键关系,您将能够将元表模型作为主表的一个属性访问。为了更清楚地说明:
假设我们有两张桌子:
客户-id -name -address -name -email
customer_meta -id -customer_id -meta_key -meta_value
您将使用Gii为这两个表生成两个模型。然后,如果您使用MySQL和InnoDB表并在customer.id -> customer_meta.customer_id之间创建一个foriegn密钥关系,您将能够访问客户模型中的元数据:
// this will echo get the first meta value
$model = new customer;
$customer = $model->loadModel( 3 );
echo $customer->customer_meta[0]->meta_value;
// or loop through the meta data
foreach( $customer->customer_meta as $meta ) {
echo 'Name: '.$meta->meta_key.' Value: '.$meta->meta_key.'<br />';
}发布于 2011-06-24 16:45:57
请参阅:http://www.yiiframework.com/doc/guide/1.1/en/database.arr
它向您介绍了一个与您想要做的类似的基本示例。请注意,如果使用外键设置数据库,则Gii工具将在模型中为您创建此关系。如果您正在使用MySql、MySqlWorkbench或其他类似工具,可以帮助您管理外键,您只需确保您使用的是InnoDB类型表。
发布于 2011-06-24 11:22:52
使用getter和setter。定义一个getYahoo方法,并在该方法中执行去查找表来检索所需的值
https://stackoverflow.com/questions/6466384
复制相似问题