Как разбить на страницы для отношения hasMany в laravel (App \ News :: пользователь должен вернуть экземпляр отношения) - PullRequest
0 голосов
/ 21 октября 2018

В этой ситуации я не могу разбивать страницы в laravel

return $this->hasMany('App\News','category_id')->orderBy('id','desc')->paginate(20);

, но выдает ошибку.в контроллере я также пытался

$byCategories=Category::findOrFail($id)->paginate(20);`

, там также говорится об ошибке.

помогите мне.

Моя модель

class Category extends Model
{
    public function news()
    {
        return $this->hasMany('App\News','category_id')->orderBy('id','desc');
    }

    public function newsMany()
    {
        return $this->belongsToMany('App\News')->paginate(20);
    }

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

    public function getRouteKeyName()
    {
        return 'slug';
    }
}

другая модель

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

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

код моего контроллера

public  function byCategory($id)
{
     $byCategories=Category::findOrFail($id);
     return view('back-end/news/byCategory', compact('byCategories'));
}

Большое вам спасибо.

1 Ответ

0 голосов
/ 22 октября 2018

Нумерация страниц в модели не выполняется, это должно выполняться в контроллере, например, удалить (-> paginate (20);) отсюда

public function newsMany()
{
    return $this->belongsToMany('App\News')->paginate(20);
}

оставить только как

public function newsMany()
{
    return $this->belongsToMany('App\News');
}

и вызывать нумерацию страниц в контроллере при возврате вида

 $news=Category::findOrFail($id)->newsMany()->paginate(20);
 return view('view name', compact('news'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...