在laravel elequent

时间:2018-05-08 08:27:52

标签: php laravel-5

如何在laravel elequent中加入这两个表并将它们作为一个表?

表1(基本信息):

id  baseId   Site_ID  region    city        address
1     123      321     west    wakanda      street2

表2(基数):

base_id     First     Second   third  
1            54          52     51

如果它们是正确的,我有两个模型idk:

class base extends Model
{
    public function Counts() {
    return $this->hasOne(CountInBase::class, 'base_id');
}

}

class CountInBase extends Model
{
    public function bases() {
        return $this->belongsTo(base::class ,'base_id','id');
    }
}

在控制器中我试图进行此查询,但我没有得到明确的结果,我只是得到第一个表的结果:

$data = base::where('region' ,'=' ,'west')->with(['Counts'])->get();

2 个答案:

答案 0 :(得分:0)

您可以像这样访问Counts数据:

foreach($data as $base) {
    // $base->Counts->First;
}

答案 1 :(得分:0)

当您要将两个或多个不同的表作为一个表联接时,必须使用联接

final Semaphore gate = new Semaphore(Integer.MAX_VALUE);

void submit() {
    if (gate.tryAcquire()) {
        try {
            // submit
        } finally {
            gate.release();
        }
    }
}

void shutdown() throws InterruptedException {
    gate.acquire(Integer.MAX_VALUE);
    // shutdown
}

在mysql中,有两种方法可以连接两个或多个表:

内部加入

左加入

右加入

联盟

交叉连接或笛卡尔积

自动加入

完全外部加入

,Laravel支持了他们。您可以看到它的文档here