Я не знаю, где именно вы получили эту ошибку, но я нашел несколько ошибок в вашем коде. Попробуйте исправить эти ошибки, возможно, это поможет вам. Вот ошибки:
- Метод
paginate()
возвращает результат, поэтому он должен быть последним в вашей цепочке. Пример: $this->jobs->all_jobs()->paginate(20)
- Вы можете получить
Pager
следующим образом: $this->jobs->pager
- Если вы хотите использовать метод
all_jobs()
с методом paginate()
, вам необходимо верните модель по вашему all_jobs()
методу
Вот правильный код для вашего контроллера:
public function jobmarket() {
$this->jobs = new \App\Models\Jobs();
if (!$this->ionAuth->loggedIn())
{
return redirect()->to('/logg-inn');
}
echo view("dashboard/header", ([
'ionAuth' => $this->ionAuth,
'uri' => $this->uri,
]));
echo view("dashboard/jobmarket", ([
'session' => $this->session,
'ionAuth' => $this->ionAuth,
'validation' => $this->validator,
'jobs' => $this->jobs->all_jobs()->paginate(20),
'pager' => $this->jobs->pager,
]));
echo view("assets/footer");
}
А вот правильный код для вашей модели:
public function all_jobs() {
$this->categories = new \App\Models\Categories();
$builder = $this->db->table('jobs');
$builder->select('*');
$builder->join('users', 'users.id = jobs.jobs_u_id');
$builder->join('categories', 'category_id = jobs.jobs_category');
// Make sure to not show current user's listings, since these will show up under "My listings"
$builder->where('jobs_u_id !=', $this->current_user->id);
// Check that the listing reflects users chosen categories
$builder->whereIn('category_id', $this->categories->user_categories());
$builder->orderBy('jobs_id', 'desc');
return $this;
}
Чтобы увидеть точное место, которое вызывает ошибку, попробуйте установить CI_ENVIRONMENT = development
в файле .env
в каталоге root. После этого попробуйте перезагрузить страницу, где вы нашли эту ошибку. Вы увидите страницу ошибки CodeIgniter с обратным следом. Попробуйте скопировать все данные из backtrace и разместить здесь, это поможет понять, что именно происходит.