如何在 Blade 视图中获取子类别状态和类别状态?

How to get subcategory status and category status on Blade view?

$categories = Category::with('subcategory')->where('status',1)->take(7)->get();

view()->share('categories', $categories);

模特类别:

protected $fillable =[
    'category_en',
    'category_np',
    'status',
];

public function posts()
{
    return $this->hasMany(Post::class);
}

public function subcategory()
{
    return $this->hasMany(Subcategory::class); // category_id
}

模型子类别:

protected $fillable = [
    'subcategory_en',
    'status',
    'category_id',
    'subcategory_np',
];

public function category()
{
    return $this->belongsTo(Category::class);
}

我的 blade 观点:

@foreach ($categories as $item)
    <li>
        <a href="#">{{ $item->category_en }}</a>
                               
        @if ($item->subcategory->count() > 0)
            <ul class="nav-dropdown">
                @foreach ($item->subcategory as $items)
                <li>
                    <a href="#">{{ $items->subcategory_np }}</a>
                </li>                                      
                @endforeach
            </ul>
        @endif
    </li>
@endforeach

我得到了 category 状态 0 但没有得到 subcategory 状态 0。

我想在 blade 视图中同时获得 categorysubcategory 状态 0。

我是laravel的新人,请帮忙

您可以像这样更改查询来为您的关系数据添加条件:

$categories = Category::with(['subcategory' => function($query){
    $query->where('status', 1);
}])->where('status',1)->take(7)->get();

通过这样做,您将向关系数据添加 where 条件,它只会获取状态为 1 的所有子类别。