Я создал систему входа, которая использует User (класс) в этом классе. Я устанавливаю объект данных. Тем не менее, я выхожу из двух разных таблиц и объединяю результаты вместе. Я сделал var_dump внутри моего метода входа, который показывает мне всю правильную информацию непосредственно перед моим заявлением RETURN.PHP Слияние двух массивов объектов/после перенаправления потери второй части
Однако, как только вход завершен и я перенаправлен на страницу index.php, я могу получить доступ к данным объекта пользователя из первой таблицы, а MERGE потерян.
В чем может быть проблема?
Вот некоторые из моего кода:
INDEX
$user = new User();
if($user->isLoggedIn()){
?>
<p>Hello <a href="#"><?php
var_dump($user->data());
if(escape($user->data()->first_name) === NULL){
echo escape($user->data()->username);
} else{
echo escape($user->data()->username);
}?></a></p>
ВХОД
$user = new User();
$login = $user->login(Input::get('username'), Input::get('password'));
if($login){
Redirect::to('index.php');
USER CLASS
// Login function
public function login($username = NULL , $password = NULL){
$user = $this->find($username);
if($user){
if(password_verify($password, $this->data()->password)){
// GRAB THE ID of user for pulling info from the personal
$userId = $this->_data->id;
$personal = $this->_db->get('personal', array('id', '=', $userId));
$this->_data = (object) array_merge((array)$this->data(),(array) $personal->first());
// VAR DUMP HERE SHOWS ALL CORRECT INFO
Session::put($this->_sessionName, $this->data()->id);
return TRUE;
}
}
return FALSE;
}// End Login
// Find user
private function find($user = NULL){
if($user){
$field = (is_numeric($user))?'id':'username';
$data = $this->_db->get('users', array($field, '=', $user));
$u = $data->first();
if($data->count()){
$this->_data = $data->first();
return TRUE;
}
}
return FALSE;
} // End FIND
Любые и вся помощь очень ценится, благодаря
Добавлено: Конструктор
$this->_sessionName = Config::get('session/session_name');
if(!$user){
if(Session::exists($this->_sessionName)){
$user = Session::get($this->_sessionName);
if($this->find($user)){
$this->_isLoggedIn = TRUE;
}else{}
}
}else {$this->find($user);}
Вы работаете в системе? – Rafael
Нет, с нуля – theStudent
О, хорошо, это выглядит как материал рамки. Отличная работа. – Rafael