繁体   English   中英

在限制Laravel中的父条目之后使用雄辩的选择相关条目

[英]Using eloquent select related entries after restricting parent entry in Laravel

如果我有一个laravel类,请说“类别”,它与另一个类具有1:1的关系,请说“子类别”,我如何查询所有子类别,但对Category类有限制?

例如,查询所有类别类别的标题为“ TEST”的子类别。

class Category extends Model
{
    public function subcategories()
    {
        return $this->hasMany('App\Subcategory');
    }
}

class Subcategory extends Model {
    public function category(){
        return $this->belongsTo('App\Category');
    }
}

我尝试通过以下方式渴望加载

    $subcategories = Subcategory::with(['category' => function($query)
        {
            $query->where('title', '=', 'TEST');

        }])->get();

// Returns ALL subcategories, with null where the category doesn't = TEST

我对执行此操作的所有方法感兴趣!

编辑-两种解决方案:

$data = Category::whereTitle('TEST')->first()->subcategories
//or equivalently:
$data = Category::whereTitle('TEST')->get()[0]->subcategories;

或在子类别中使用@Alpha解决方案创建动态范围

public function scopeFromCategory($query, $type)
{
    return $query->whereHas('Category', function ($q) use ($type)
    {
        $q->whereTitle($type);

    });
}

// So you can later call
$data = Subcategory::FromCategory('TEST')->get();

您可以尝试如下操作:

$subcategories = Subcategory::whereHas('category', function($query)
                 {
                     $query->where('title', 'TEST');
                 })
                 ->with('Category')
                 ->get();

此代码将返回包括相关CategorySubCategoriesSubCategories是相关的category.titleTEST 另请参阅有关querying-relations的文档。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM