in laravel error В foreach () указан неверный аргумент (просмотр: я не вижу $ value - PullRequest
1 голос
/ 08 апреля 2020

Я пытаюсь сделать блог 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}}" 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>

Ответы [ 2 ]

1 голос
/ 08 апреля 2020

pass 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>
0 голосов
/ 08 апреля 2020

Вы можете просто использовать forelse, он позаботится о empty case

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

Надеюсь, это поможет ссылка .

Спасибо.

...