Здравствуйте, у меня есть проблема со страницей профиля пользователя в codeigniter.
Итак, вот мой пользовательский контроллер:
<?php
class User extends CI_Controller {
function users() {
parent::user();
}
function index($id = null) {
if($id == null) {
redirect('/', 'refresh');
}
else {
$data['title'] = 'User Page';
$data['result'] = $this->users_model->get_user_info();
$data['id'] = $id;
$data['main_content'] = "main/profile_view" ;
$this->load->view('home',$data);
}
}
}
?>
И это функция в модели:
public function get_user_info(){
$this->db->where('id' , 'id');
$q = $this->db->get('users');
if ($q->num_rows > 0) {
return $q->result();
} else {
return false;
}
}
И это файл маршрутов:
$route['user/(:any)'] = "user/index/$1";
i get this error in localhost/cc/user/1
Fatal error: Call to a member function get_user_info() on null in C:\xampp\htdocs\cc\application\controllers\user.php on line 12
И я хочу знать, как отображать данные пользователя в представлении
в вашем контроллере я думаю эту строку:
$data['result'] = $this->users_model->get_user_info();
должно быть:
$data['result'] = $this->users_model->get_user_info($id);
и в вашей модели это:
public function get_user_info(){
$this->db->where('id' , 'id');
должно быть так:
public function get_user_info($id){
$this->db->where('id' , $id);
// ================= следующий вопрос
я попробовал, но когда я ввожу не существующий идентификатор после пользователя /. , он отображает профиль VUE
да, я собирался обернуть его в IF, но потом стало ленивым — вот один из способов
проверьте, не вернулся ли результат — поэтому после того, как вы проверите, имеет ли $ id значение NULL, — если $ data [‘result’] не вернулся из модели, перейдите к методу, подобному showUserNotFound ($ id).
elseif ( ! $data['result'] = $this->users_model->get_user_info($id) ){
$this->showUserNotFound($id); }
else { $data['title'] = 'User Page';
$data['id'] = $id;
$data['main_content'] = "main/profile_view" ;
$this->load->view('home',$data); }
Других решений пока нет …