У меня есть вопрос, касающийся свойств для конкретного экземпляра модели CI. Например:
Существует модель под названием project_model. В модели есть метод calle Get_Projects:
$total_projects = $this->project_model->Get_Projects($options);
Когда это вызывается, оно создает свойство в модели следующим образом:
$query = $this->db->get('projects');//query
$this->num_rows = $query->num_rows();
return $query->result();
Поэтому после вызова метода и в контроллере мне нужно получить доступ к num_rows:
$num_rows = $total_projects->num_rows;
(Я знаю, что некоторые из вас могут подвергнуть сомнению причину использования num строк в контроллере. Это связано с настройкой нумерации страниц. Возможно, есть лучшие способы сделать это, но в этом конкретном проекте нет времени.)
Моя проблема в том, что это создает синтаксическую ошибку:
Severity: Notice
Message: Trying to get property of non-object
Filename: controllers/projects.php
Line Number: 110 ($num_rows = $total_projects->num_rows;)
Во-первых, почему это? Я думал об использовании этого: $ this-> project_model :: num_rows вместо? Но тогда num_rows не будут специфичными для объекта $ total_rows, не так ли? Так будет только для всей модели.
Кстати: я читал руководство по CI для моделей, но не было никакой информации о создании экземпляров моделей вообще.
РЕДАКТИРОВАНИЕ: мне нужно, чтобы результат свойства num_rows был специфичным для объекта. Так, например:
$a=$this->project_model->Get_Projects($options);
$b=$this->project_model->Get_Projects($options);
$num_rows = $this->project_model->num_rows;
Последняя строка получит результат $ b num_rows, а не $ a. Итак, как мне это назвать, чтобы я мог сделать его специфичным для объекта? (Очевидно, я мог бы сохранить его перед вторым вызовом в переменной.)