Laravel 4,Retrive变形父模型,查询孩子

时间:2014-01-14 08:24:17

标签: php laravel-4 eloquent polymorphism

我不知道如何提出这个问题,问题并不像描述那么清楚。但在这里它。 我想查询父模型,通过查询子模型。以下是基本模型:

    //Gig.php
    class Gig extends Eloquent 
{
    public function gigable()
    {
        return $this->morphTo('profile');
    }
}

//Band.php

class Band extends Eloquent {
public function gigs()
    {
        return $this->morphMany('Gig','profile');
    }
}
//Musician.php

class Musician extends Eloquent {
public function gigs()
    {
        return $this->morphMany('Gig','profile');
    }
}

现在,我知道我可以这样做:

Gig::find(1)->gigable

有没有办法可以在一个查询中检索gigables 例如,对于我的api,我可以立刻返回所有的gigable。 类似的东西:

Gig::where('id','>',1)->gigable

我知道那些不起作用。 比如反过来我可以做点什么,

Band::with('gigs')->where('created_at','<',Carbon::now())->get();

1 个答案:

答案 0 :(得分:0)

使用如下

//Gig.php
class Gig extends Eloquent {
    public function gigable()
    {
        return $this->morphTo();
    }
}

//Band.php
class Band extends Eloquent {
public function gigs()
    {
        return $this->morphMany('Gig','gigable');
    }
}

//Musician.php
class Musician extends Eloquent {
public function gigs()
    {
        return $this->morphMany('Gig','gigable');
    }
}

然后你就能以这种方式获得演出:

$band = Band::with('gigs')->where('created_at','<',Carbon::now())->get();
$gigs = $band->gigs;

如果这是你想要的......你的问题不清楚