Laravel联盟两个型号由id

时间:2017-02-09 12:31:34

标签: laravel model

我有两个型号。我怎样才能结合?喜欢$ records-> union($ datetimesarchive,' id1',' =',' id2'):

class Record extends Model
{
    protected $table = 'records';

    public function getByVar($var)
    {
        $data = Record::where('var', $var)
            ->select('fio', 'var1', 'var2')
            ->get();
        return $data;
    }
}

class DateTimeArchive extends Model
{
    protected $table = 'table2';

    public function getStatus($status)
    {
        $data = DateTimeArchive::where('status', $status)
            ->select('date', 'var1', 'var2')
            ->get();
        return $data;
    }    
}

即时尝试在laravel上重构:

$result = $mysqli->query("
SELECT z.fio, z.var1, z.var2, d.date, d.var1, d.var2
FROM table1 z, table2 d WHERE (z.var1 = 'mytext' AND d.var2 = 'othertext' AND z.id1 = d.id2)");

1 个答案:

答案 0 :(得分:1)

你可以使用Eloquent集合的功能。“合并” 例如:

$result1=DateTimeArchive::where('status', $status)
        ->select('date', 'var1', 'var2')
        ->get();
  $result2=Record::where('var', $var)
        ->select('fio', 'var1', 'var2')
        ->get();
 $result=$result1->merge($result2);