Попытка извлечь сообщения из таблицы по категориям слаг - PullRequest
0 голосов
/ 13 декабря 2018

Здравствуйте, я пытаюсь зациклить сообщения, которые связаны с каждой категорией слизняком.Это работает, когда я использую идентификаторы, но когда я изменяю свою функцию контроллера для поиска по слагу, он извлекает слаг, но не загружает цикл foreach.

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

Категория Модель:

protected $table = 'post_categories';
public function posts()
{
    return $this->hasMany('App\Post', 'id', 'name', 'catslug');
}

Почтовая модель

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

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

Контроллер

public function getPostCategory($catslug) {        
    $postCategories = PostCategory::with('posts')
                    ->orderBy('name', 'asc')
                    ->where('catslug', '=', $catslug)
                    ->first();
     return view ('articles.category.categoriesposts')->with('postCategories', $postCategories);
}

Маршрут

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

Просмотр

@foreach($postCategories->posts as $post)
  <h4>{{ substr($post->title, 0, 50) }}</h4>
   <p>{{ substr($post->body, 0, 90) }}</p>             
 @endforeach

Когда я использую идентификатор, нет проблем, я не вижу, что делаюнеправильно любой отзыв будет по-настоящему оценен

Спасибо

Ясень

1 Ответ

0 голосов
/ 14 декабря 2018

Сохранение идентификатора категории в таблице сообщений с указанием имени категории или слаг.

Изменение модели категории сообщения:

public function posts()
    {
        return $this->hasMany('App\Post', 'category_id');
    }

Ваш метод контроллера:

public function getPostCategory($catslug)
    {
        $postCategories = PostCategory::with('posts')->where('catslug', $catslug)->first();
        return view('articles.category.categoriesposts')->with('postCategories', $postCategories);
    }

Если вы хотите заказать посты по имени, добавьте orderBy() в отношениях:

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