ErrorException Недопустимый аргумент для foreach () - PullRequest
1 голос
/ 30 июня 2019

Итак, я пытался получить полный пост из базы данных по идентификатору, поэтому, когда я нажимаю на эту ссылку <a href="{{ route('post.read', ['blog_id' => $blog->id]) }}" class="read-more">Lanjutkan Baca <img src="asset/img/icons/double-arrow.png" alt="#"/></a>, я перехожу на url /post/read/{id} и выдаю полный пост, но он показывает эту ошибку,

Я ищу ту же проблему и обнаружил, что проблема заключается в том, что переменная $ blogs представляет собой массив, но возвращаемое им значение не является, может кто-нибудь показать мне, как создать метод или представление в моем коде для возвратамассив и показать полный пост?

это мой взгляд read.blade.php

@foreach ($blogs as $blog)
                <div class="top-meta">{{ Carbon\Carbon::parse($blog->created_at)->format('d-m-Y')  }} /  di <a href="">Rakitan</a></div>
                    <h3>{{ $blog->name }}</h3>
                    <p>{!! $blog->message !!}</p>
@endforeach

это мой BlogController.php

public function getFullPost($blog_id) {
        $blogs = Blog::all()->where('blogs.id', '=', $blog_id)->first();
        return view('post.read')->with(compact('blogs'));
    }

это модельBlog.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Blog extends Model
{
    protected $fillable = ['name','message'];
}

и это маршруты

Route::get('/post/read/{blog_id}', 'BlogController@getFullPost')->name('post.read');

1 Ответ

1 голос
/ 30 июня 2019

Используйте метод get для получения всех строк с условиями

  public function getFullPost($blog_id) {
    $blogs = Blog::where('id', '=', $blog_id)->get();
    return view('post.read')->with(compact('blogs'));
  }

Добавить имя таблицы в Model для ссылки в модели блога

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...