与具有条件的多重表的关系

时间:2017-06-02 05:20:01

标签: php laravel laravel-5.3

我有3张桌子

1.Testcase : id 

2.sceanrio : id, testcaseId

3.test case step: id testcase id,sceanrio id

我正试图根据以下条件为这些表建立关系

如果测试用例有sceanrio那么它应该是testcase和测试用例步骤的chilr应该是方案的孩子或者测试用例步骤应该是测试用例的孩子

根据我的知识,我从未见过像这样的基于条件的关系。我知道有很多通过但我不能适用于这个条件可以任何人帮助我如何实现这个

有很多通过 https://laravel.com/docs/5.4/eloquent-relationships 根据laravel文档,我的表格与许多人没有关联

1 个答案:

答案 0 :(得分:1)

你可以这样建立关系: -

Testcase Model 
public function getsceanrio(){
    return $this->hasMany('APP\sceanrio','testcaseId','id')->with('gettestcasestep');
}

public function testcasestepGet(){
    return $this->hasMany('APP\TestCaseStep','testcase_id','id');
}     

Now in sceanrio Model
 public function gettestcasestep(){
    return $this->hasMany('APP\TestCaseStep','sceanrio_id','id');
} 

现在在控制器中

Public function someNameofFunction(){
   $getdata = TestCase::with('getsceanrio','testcasestepGet')->get();
   dd($getdata);
}

希望它有所帮助!