【问题标题】:foreach() argument must be of type array|object, null givenforeach() 参数必须是数组|对象类型,给定 null
【发布时间】:2021-05-05 01:12:14
【问题描述】:

我在 laravel 8 上,当我想根据数据库的类别 ID 显示我的数据时遇到了这个问题。而且我很确定我已经为数据分配了类别。

我的 Index.Blade

@extends('layouts.front')

@section('content')

    <div class="container">
        <h2>Produk {{ $categoryName ?? null }}</h2>

        <div class="custom-row-2">
            @foreach ($produks as $produk)

                @include('produk._single_product')

            @endforeach
        </div>
    </div>

@endsection

我的控制器

public function index()
    {
        $keranjangItems = \Cart::session(auth()->id())->getContent();

        $categoryId = request('category_id');
        $categoryName = null;

        if($categoryId){
            $category = Category::find($categoryId);
            $categoryName = ucfirst($category->name);

            $produks = $category->products;
        }else{
            $produks = Produk::take(10)->get();
        }


        return view('produk.index', compact('keranjangItems', 'produks', 'categoryName'));
    }

我发现了一个几乎相同问题的线程。我也从我在 youtube 上找到的一些教程中获得了这段代码,它应该可以工作。我试图清除缓存,在 foreach 中添加“(数组)”。而且它们都不起作用,有人可以帮助我吗?谢谢

【问题讨论】:

    标签: database laravel


    【解决方案1】:

    这行可能是问题所在。

    $produks = $category-&gt;products;

    products() 是否正确定义为Category 模型中的关系?如果不是,$category-&gt;products 将返回 null

    【讨论】:

    • 啊,我明白了,我对一些变量做了一些更改,显然在遵循教程时感到困惑。谢谢人
    猜你喜欢
    • 2021-04-28
    • 2022-12-05
    • 2017-09-20
    • 2017-05-06
    • 1970-01-01
    • 2022-08-23
    • 2021-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多