Модель работает хорошо. Контроллер работает хорошо. Единственное место, где у меня есть ошибка, это представление.
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()
Кто-нибудь знает, что я делаю неправильно?
как вы передаете его в представление?
Можете ли вы показать нам содержимое $course?
Должно быть, я случайно стер ссылки в сообщении об ошибке. Выложу всю функцию контроллера и содержание курса.
Вы где-нибудь зацикливаете $course перед вызовом $course->links()? То есть ты делаешь @foreach($course AS $course)? Потому что это переопределяет $course как экземпляр модели, а links() не является методом экземпляра. Вы должны называть свою переменную $courses (множественное число), поэтому, когда вы зацикливаете ее, вы используете $course (единственное число). Это или вы звоните ->link(), когда вы должны звонить ->links(). Я думаю, вам нужно предоставить больше кода.
Да, и все отлично работает, пока я не добавлю ссылки на страницы.
Поделитесь полным кодом, мы не можем предсказать, что происходит, по подсказкам! Поделитесь просмотром полного кода
ОМГ ты гений. Это сработало. Это подавляло друг друга. Хорошо поймал. Я работал над этим 14 часов и отрастил 3 седых волоса. Большое спасибо, Тим.






Код контроллера в порядке.
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()}
В сообщении об ошибке говорится, что метод
link()не определен, не так лиlinks()?