Laravel Eloquent 关系子关系?

Laravel Eloquent Relationship Sub-Relationship?

我有一个 Offer class 具有以下关系:

class Offer extends Model
{
    public function releases()
    {
        return $this->belongsToMany('App\Release');
    }
}

版本class有这样的关系:

class Release extends Model
{
    public function artist()
    {
        return $this->belongsTo('App\Artist');
    }
}

最简单的修改方法是什么

   App\Offer::with('releases')->get();

以便在每个版本中也获取艺术家信息?

您可以通过以下方式完成此操作:

App\Offer::with('releases.artist')->get();

您可以查看:http://laravel.com/docs/5.1/eloquent-relationships#querying-relations了解更多信息。

如果您有多个关系,您可以通过以下方式查询它们:

App\Offer::with(['releases.artist', 'releases.albums'])->get();

当您向下滚动一点时,您会看到

// Retrieve all posts that have at least one comment with votes...
$posts = Post::has('comments.votes')->get();

记住 "dot" 符号是 Laravel 的标准约定。例如加载视图:

view('folder.viewfile');

这同样适用于 eloquents 嵌套关系。

OrderProduct::with(
                array(
                    'product' => function ($query) {
                        $query->select('id', 'store_id', 'en_name', 'bn_name', 'image')->with(
                            array(
                                'store' => function ($q) {
                                    $q->select('id');
                                }
                            )
                        );
                    }
                )
            )->where('order_id', $order->id)->get(),