Laravel разбить на страницы

Модель работает хорошо. Контроллер работает хорошо. Единственное место, где у меня есть ошибка, это представление.

class Course extends Model
{
    use SoftDeletes, FilterByUser;

    protected $fillable = ['title', 'description', 'course_image', 'start_date', 'active', 'mandatory', 'created_by_id'];
    protected $hidden = [];
    public static $searchable = [
        'title',
        'description',
    ];


    public static function boot()
    {
        parent::boot();

        Course::observe(new \App\Observers\UserActionsObserver);
    }

    /**
     * Set attribute to date format
     * @param $input
     */
    public function setStartDateAttribute($input)
    {
        if ($input != null && $input != '') {
            $this->attributes['start_date'] = Carbon::createFromFormat(config('app.date_format'), $input)->format('Y-m-d');
        } else {
            $this->attributes['start_date'] = null;
        }
    }

    /**
     * Get attribute from date format
     * @param $input
     *
     * @return string
     */
    public function getStartDateAttribute($input)
    {
        $zeroDate = str_replace(['Y', 'm', 'd'], ['0000', '00', '00'], config('app.date_format'));

        if ($input != $zeroDate && $input != null) {
            return Carbon::createFromFormat('Y-m-d', $input)->format(config('app.date_format'));
        } else {
            return '';
        }
    }

    /**
     * Set to null if empty
     * @param $input
     */
    public function setCreatedByIdAttribute($input)
    {
        $this->attributes['created_by_id'] = $input ? $input : null;
    }

    public function created_by()
    {
        return $this->belongsTo(User::class, 'created_by_id');
    }

    public function trainers()
    {
        return $this->belongsToMany(User::class, 'course_user');
    }

    public function lessons()
    {
      return $this->hasMany('\App\Lesson');
    }




}

Кажется, у меня проблема с нумерацией страниц. Вот код, который у меня есть для контроллера, и он работает хорошо.

public function index()
{
  $course =Course::paginate(15);
  return view('admin.courses.learn', compact('course'));
}

Вот что у меня есть для просмотра:

{{$course->links()}} 

здесь я получаю сообщение об ошибке Вызов неопределенного метода App\Course::link()

Кто-нибудь знает, что я делаю неправильно?

В сообщении об ошибке говорится, что метод link() не определен, не так ли links()?

newUserName02 19.02.2019 21:37

как вы передаете его в представление?

Toby Okeke 19.02.2019 21:42

Можете ли вы показать нам содержимое $course?

JoaoGRRR 19.02.2019 21:43

Должно быть, я случайно стер ссылки в сообщении об ошибке. Выложу всю функцию контроллера и содержание курса.

Simona Buga 19.02.2019 22:01

Вы где-нибудь зацикливаете $course перед вызовом $course->links()? То есть ты делаешь @foreach($course AS $course)? Потому что это переопределяет $course как экземпляр модели, а links() не является методом экземпляра. Вы должны называть свою переменную $courses (множественное число), поэтому, когда вы зацикливаете ее, вы используете $course (единственное число). Это или вы звоните ->link(), когда вы должны звонить ->links(). Я думаю, вам нужно предоставить больше кода.

Tim Lewis 19.02.2019 22:07

Да, и все отлично работает, пока я не добавлю ссылки на страницы.

Simona Buga 19.02.2019 22:15

Поделитесь полным кодом, мы не можем предсказать, что происходит, по подсказкам! Поделитесь просмотром полного кода

Iftikhar uddin 19.02.2019 22:20

ОМГ ты гений. Это сработало. Это подавляло друг друга. Хорошо поймал. Я работал над этим 14 часов и отрастил 3 седых волоса. Большое спасибо, Тим.

Simona Buga 19.02.2019 22:22
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
8
112
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Код контроллера в порядке.

 public function index()
 {
 $course =Course::paginate(15);
 return view('admin.courses.learn', compact('course'));
 }

Теперь посмотрим на вид.

 @foreach($course as $row)
 //Whatever action you wanted to do will be written here
 @endforeach
 {{$course->links()}} //The name should be differ than the name we used inside the foreach loop.
Ответ принят как подходящий

Код контроллера:

public function index()
{
    $course =Course::paginate(15);
    return view('admin.courses.learn', compact('course'));
}

Вот для вида:

@foreach($course as $row)
    //Whatever you wanted to display will be written here
@endforeach
{!! $course->render() !!}

ИЛИ

@foreach($course as $row)
 //Whatever you wanted to display will be written here
@endforeach
 {{$course->links()}

Другие вопросы по теме