Пользовательские типы данных на CodeIgniter - PullRequest
0 голосов
/ 03 апреля 2019

Я пытаюсь создать пользовательские типы данных для более удобного доступа к данным, когда они мне нужны.Это будет простой класс php со свойствами, которые будут хранить нужные мне данные.Например,

class Inventory_line {
    public $prod_code;
    public $prod_name;
    public $fmt_code;
    public $fmt_name;
}

Также я намереваюсь сохранить некоторые из этих объектов в моих данных сеанса.

Я пытаюсь добиться этого, создав библиотеку с нужными мне свойствами и затем загрузивбиблиотека и создание экземпляра моего класса, когда мне это нужно.Моя модель устанавливает свойства и возвращает их.

$this->load->library('inventory_line');

$line = new inventory_line();
$line->prod_code = 1;
$line->prod_name = 'Product';
$line->fmt_code = 11;
$line->fmt_name = 'Format';

Затем мой контроллер сохраняет объект в моих пользовательских данных сеанса:

$new_line = $this->inventory_model->get_line();
$this->session->set_userdata('new_line', $new_line);

Но когда я пытаюсь получить доступ к значениям, хранящимся на моемданные сеанса (в другой функции контроллера) Я получаю сообщение об ошибке, указывающее, что Сценарий попытался выполнить метод или получить доступ к свойству незавершенного объекта .

$new_line = $this->session->userdata('new_line');
echo $new_line->prod_name;

Q1: Как/ где я должен объявить, что мой класс работает должным образом на CodeIgniter?

Q2: Это считается плохой практикой или может быть сделано лучше?

РЕДАКТИРОВАТЬ: Добавлены примеры кода и более подробно объяснено, что я делаю.

РЕДАКТИРОВАТЬ 2: Дальнейшие тесты позволили мне обнаружить ошибку, обнаруженную при получении объекта из сеанса.

1 Ответ

0 голосов
/ 03 апреля 2019

Я наконец нашел решение!(читая ответы на этот пост )

Мне просто нужно было сериализовать мой объект перед сохранением его в моих данных сеанса, чтобы избежать проблем с его получением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...