Laravel Eloquent:获取相关表列的数据和使用条件

Laravel Eloquent:获取相关表列的数据和使用条件,laravel,eloquent,relation,Laravel,Eloquent,Relation,我使用Laravel和elount,我希望通过关系从两个表中获取数据 例如,我希望选择类别状态处于活动状态的类别中的所有书籍 class Book extends Model { public $belongsTo = [ 'category' => '..\Models\Categories', ]; public function categories() { return $this->belongsTo('..\Mo

我使用
Laravel
elount
,我希望通过关系从两个表中获取数据

例如,我希望选择类别
状态
处于活动状态的类别中的所有书籍

class Book extends Model
{
    public $belongsTo  = [
        'category' => '..\Models\Categories',
    ];

    public function categories() {
        return $this->belongsTo('..\Models\Categories');
    }

}
在控制器中,我可以使用下一个代码来选择所有书籍

Book::with('categories');

是否有方法选择类别
状态处于活动状态的所有类别中的书籍?

您可以使用即时加载进行此操作

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Book extends Model
{
    /**
     * The categories that associated with the book.
     */
    public function categories()
    {
        return $this->belongsToMany('App\Category');
    }
}
Book::with(['categories' => function($query){
    $query->where('status','active');
}]);

你能说清楚吗,这本书是属于多个类别还是单一类别?这本书可以属于多个类别。当然,你有一个多对多的关系,而不是一对多。@aya我已经编辑了我的答案,你可以试试这个,如果你有任何问题,请告诉我?