我想为应用程序的管理员生成一份报告。它是一个小型的自由职业网站。 我使用Yii 1.1.14和Mysql作为数据库。 我在数据库中有3个关系表,我想从中检索一些数据。 我只显示那些关系的字段,可能需要了解工作范围。
带有字段的用户表: id |名字|电子邮件|密码| type(它的用户类型,自由职业者,项目所有者或管理员)
带有字段的出价表: id | project_id(引用项目的外键(' id'))| freelancer_id(引用用户的外键(' id'))
包含字段的项目表: id |标题|描述| selected_bid(为项目选择的出价的ID)。
id通常都是主键。
所以我想得到的是: 前端的表格,其中包含所有这些用户的姓名,电子邮件,电话号码和关于他的项目的信息,每个人都在一行中。 请建议实现这一目标的最佳方法是什么? 我已经尝试过了。 请不要发布Yii的文档或Larry的基础教程。我已经完成了基本规则。
我希望自己清楚明白。 谢谢大家。
答案 0 :(得分:0)
我对您的问题的理解是,您希望从3个表中将所有数据放在一起。在这种情况下,您可以在控制器中使用Join Query。
答案 1 :(得分:0)
虽然我不确定你的链接模型你的外键是否也是主键?但你可以像......一样经历......
class User extends CActiveRecord{
...
public function relations()
{
return array(
'bids'=>array(self::HAS_MANY,'Bid','| freelancer_id'),
'users'=>array(
self::HAS_MANY,'Project',array('user_id'=>'id'),**'through'=>'bids'**
),
);
}
}
//then use as ....
// get all Projects with all corresponding users
$user = User::model()->with('users')->findAll();
答案 2 :(得分:0)
在您的用户模型中添加
class User extends CActiveRecord{
...
public function relations()
{
// NOTE: you may need to adjust the relation name and the related
// class name for the relations automatically generated below.
return array(
'bid'=>array(self::BELONGS_TO, 'Bid', array('id'=>'freelancer_id')),
'project'=>array(self::BELONGS_TO, 'Project', array('id'=>'selected_bid'), 'through'=>'bid')
);
}
}
添加出价模型添加
class Bid extends CActiveRecord
{
...
public function relations()
{
// NOTE: you may need to adjust the relation name and the related
// class name for the relations automatically generated below.
return array(
'project'=>array(self::BELONGS_TO, 'Project', array('id'=>'selected_bid'))
);
}
}
现在你可以让所有选择项目的自由职业者。