2015-11-24 68 views
0

我有三个表,我使用成员来查找它们已完成的所有任务。从PHPactiverecord链接表中检索数据

class Task extends BaseModel { 
static $has_many = array(
    array('members', 'through' => 'member_tasks'), 
    array('member_tasks', 'class_name' => 'Member_task') 
); 

class Member extends BaseModel { 
static $has_many = array(
    array('tasks', 'through' => 'member_tasks'), 
    array('member_tasks', 'class_name' => 'Member_task') 
); 

class Member_task extends BaseModel { 
static $belongs_to = array(
    'member', 'task' 
); 

如果我叫$tasks = $member->myTasks()

public function myTasks() 
{ 
    return $this->tasks; 
} 

我可以检索与该成员的任务表中的项目。但是,我有一个位于Member_tasks表中的is_completed标志。我如何抓住?

回答

0

如果你有一个成员,这些关联是可以访问的,所以你可以让他们通过$member->tasks,不需要这个功能。

这同样适用于表之间,所以你必须

foreach($member->member_tasks as member_task){ 
    //now you have a member_task object 
    //use $member_task->is_completed 
} 

您不必使用“低谷”的定义,特别是如果你想看看联想的标志。只需“手动”进入连接表,查看条目,然后获得任务将是方式。

如果你想要那个member_task中的任务,你可能还需要定义这个关联,因为它看起来并不像你那样呢?