Итак, это меня озадачивает.Настройка user_data в сеансе, дающая разные результаты
Когда пользователь входит в систему I установить UserData в сессии так:
$data = array();
$data['email'] = $this->input->post('email');
// get the user's info where it matches their email in the db.
$user = $this->User_model->get_user($data);
$this->session->set_userdata('user_session', $user);
Теперь это прекрасно работает. Он создает user_session
в данных сеанса как объект. С кем я в порядке.
Затем, когда пользователь обновляет свою информацию, я хочу сбросить данные в user_session
, чтобы они соответствовали их новым данным. Я делаю это так:
$data = array(
'first_name' => $this->input->post('first_name'),
'last_name' => $this->input->post('last_name'),
'email' => $this->input->post('email'),
'phone' => $this->input->post('phone'),
'street1' => $this->input->post('street1'),
'street2' => $this->input->post('street2'),
'city' => $this->input->post('city'),
'state' => $this->input->post('state'),
'zip' => $this->input->post('zip'),
'password' => $encrypted_password,
'organizations_id' => $this->input->post('org_select')
);
$user = $this->User_model->get_user($data);
$this->session->set_userdata('user_session', $data);
Теперь $data
здесь используется, чтобы обновлять информацию в БД, а затем повторно использовать его, чтобы вывести свои данные из с помощью индексации на их email
.
Наконец, здесь метод я использую модель для обоих из них:
public function get_user($data)
{
return $this->db
->where('email', $data['email'])
->select('first_name, last_name, email, password, id, organizations_id')
->get('users')
->row();
}
Это работает, но по-разному. Вместо того, чтобы давать мне объект, он просто дает мне массив. Это вызывает целый ряд проблем в другом месте моего кода.
Как мне управлять властью или нет, это дает мне объект или массив?
EDIT:
Я реализовал идиот ход. Я отправил $data
вместо $user
в свою модель, когда пользователь изменил свою информацию.
Поэтому я исправил проблему, и теперь я получаю объект оба раза. Но я все еще хочу знать, как эти два метода дали разные результаты. Таким образом, я могу контролировать это в будущем.
Так что с этим, как говорится, вот мой ОФИЦИАЛЬНЫЙ ВОПРОС:
Как контролировать ввод данных сеанса, так что это либо массив или объект?
Это действительно хорошая идея. Нужно ли это быть случайной строкой? или я могу просто использовать автоматически увеличивающийся номер в db (вот как он настроен в данный момент в любом случае. каждый пользователь имеет свой собственный уникальный номер, но его не случайный) – JDillon522
ответил (а) в правой части – cartalot