在 laravel 错误中为 foreach() 提供的参数无效(视图:我看不到 $value

in laravel error Invalid argument supplied for foreach() (View: i cant see $value

我正在尝试为看到此错误的每个人创建一个博客 为 foreach() 提供的参数无效(视图:

我的网站https://weadam.com/

我的代码是: 控制器:

 public function index()
    {
        $localetmp = Session::get('locale');
        $blogs = @json_decode(file_get_contents("https://www.weadam.com/blogs/wp-json/wp/v2/posts?per_page=4&lang=" . $localetmp));
        $blogsold = Blog::orderBy('id','desc')->take(100)->get();

        foreach ((array)$blogs as $blog){
            // $blog->elapsed = $this->time_elapsed_string('@'.$blog->date);
            // $blog->date = date("d F Y",$blog->date);
        }
        $error = "";
        return view('home-new',['blogs' => $blogs]);
    }

视图是:

<div class="eng-home-blog">
                <div class="col-sm-9 home-post-disp bx-shadow brd-radius bg-white">
                    @foreach($blogs as $blog)
                        @if($blog->sticky)
                            <img src="{{$blog->fimg_url}}" alt="" class="img-responsive brd-radius bx-shadow">
                            <div class="hm-post-date">{{$blog->date}}</div>
                            <h3>{{$blog->title->rendered}}</h3>
                            <p>{!!$blog->excerpt->rendered!!}</p>
                            <span><a href="{{$blog->link}}" target="_blank">{{__("READ MORE")}}</a></span>
                        @endif
                    @endforeach
                </div>
            </div>

您可以简单地使用 forelse 它会处理 empty case

 @forelse($blogs as $blog)
  // do what ever you want to do
 @empty
    <div> Nothing to show </div>
 @endforelse

希望对您有所帮助reference

谢谢。

true 作为次要参数传递给 json_decode 函数

$blogs = @json_decode(file_get_contents("https://www.weadam.com/blogs/wp-json/wp/v2/posts?per_page=4&lang=" . $localetmp),true);

现在您必须获取此博客数据作为关联数据。不是作为一个对象。这是它的示例代码

<div class="eng-home-blog">
    <div class="col-sm-9 home-post-disp bx-shadow brd-radius bg-white">
        @foreach($blogs as $blog)
        @if($blog['sticky'])
        <img src="{{$blog['fimg_url']}}" alt="" class="img-responsive brd-radius bx-shadow">
        <div class="hm-post-date">{{$blog['date']}}</div>
        @endif
        @endforeach
    </div>
</div>