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

Posted

技术标签:

【中文标题】在 laravel 错误中为 foreach() 提供的参数无效(查看:我看不到 $value【英文标题】:in laravel error Invalid argument supplied for foreach() (View: i cant see $value 【发布时间】:2020-07-20 10:37:57 【问题描述】:

我正在尝试创建一个看到此错误的博客 foreach 为 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"  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>

【问题讨论】:

dd($blogs) 在 foreach 之前 【参考方案1】:

在 json_decode 函数中传递 true 作为辅助参数

$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']"  class="img-responsive brd-radius bx-shadow">
        <div class="hm-post-date">$blog['date']</div>
        @endif
        @endforeach
    </div>
</div>

【讨论】:

【参考方案2】:

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

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

希望对reference有帮助。

谢谢。

【讨论】:

这是工作,但我在 آخرین اخبار 博客中看不到博客帖子不是空的,但不在博客中显示帖子

以上是关于在 laravel 错误中为 foreach() 提供的参数无效(查看:我看不到 $value的主要内容,如果未能解决你的问题,请参考以下文章

使用 vue js 时在 laravel 中为 foreach 提供的参数无效

我们如何在 laravel php 刀片模板中为 foreach 循环定义循环变量

Laravel 在 spatie-permission 的 foreach 循环中给出错误

使用 foreach 更新 Laravel 错误:语法错误,意外 ' ' (T_STRING),期待 ']'

请帮助:“在Wordpress中为foreach()提供了无效的参数”

我如何在引导程序中为索引设置不同的列排列和不同的卡片设计?