Показать сообщения, принадлежащие категории в Laravel - PullRequest
0 голосов
/ 23 мая 2019

Я пытаюсь получить сообщения, относящиеся к каждой категории, у меня это уже работало, но я не могу найти то, что я сделал неправильно.

У меня есть таблица сообщений и категорииТаблица

МАРШРУТ

Route::get('articles/category/{id}', ['as' => 'post.category', 'uses' => 'ArticlesController@getPostCategory']);

КОНТРОЛЛЕР

public function getPostCategory($id)
{
    $postCategories = PostCategory::with('posts')
        ->where('post_category_id', '=', $id)
        ->first();

    $categories = PostCategory::all();

    // return view
    return view('categories.categoriesposts')->with('postCategories', $postCategories)->with('categories', $categories);
}

ПРОСМОТР

@foreach($postCategories->posts as $post)

    <div class="well">

        <div class="media">
            <a class="pull-left" href="#">
                <img class="media-object" src="http://placekitten.com/150/150">
            </a>

            <div class="media-body">
                <h4 class="media-heading">{{ substr($post->title, 0, 50) }}</h4>
                <p class="text-right">By Francisco</p>
                <p>{{ substr($post->body, 0, 90) }}</p>
                <ul class="list-inline list-unstyled">

                </ul>
            </div>
        </div>
    </div>

@endforeach

ПОСТ МОДАЛЬНЫЙ

public function postCategory()
{   
    return $this->belongsTo('App\PostCategory');
}

ПОСТКАТЕГОРИЯ МОДАЛЬНАЯ

class PostCategory extends Model
{
    // connect Categories to Posts tables
    protected $table = 'post_categories';

    // Category belongs to more than 1 post
    public function posts()
    {
        return $this->hasMany('App\Post', 'post_category_id');
    }
}

Я не вижу, что я делаю неправильно, каждый раз, когда я захожу в категорию, которую она показывает

Пытается получить свойство необъекта

Любая помощь будет высоко ценится благодаря

1 Ответ

0 голосов
/ 23 мая 2019

замените ваши строки:

$postCategories = PostCategory::with('posts')       
             ->where('post_category_id', '=', $id)
             ->first();

на:

    $postCategories = PostCategory::find($id)->posts;

Измените свою строку в вашей PostCategoryModel на:

return $this->hasMany('App\Post', 'post_category_id','post_category_id');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...