eh,temen-temen ada yang tahu nih cara membuat global session di yii,gmana?
eh,temen-temen ada yang tahu nih cara membuat global session di yii,gmana?
Menyimpan data di session:
Yii::app()->session->add('value_1', 'Isi session value_1');
,
membacanya:
$value_1 = Yii::app()->session->get('value_1');
ya… benar. ternyata untuk session global sudah paket di dalam yii. tinggal pake saja, caranya masukkan dalam protected/views/layout/main.php yaitu:
$session = new CHttpSession;
$session->add('value_1','isinya');
terus masukkan nilai session itu ke dalam baris yang ingin ditampilkan gunakan perintah:
$session->get('value_1');
semoga temen-temen yang lain punya cara yang lebih mantap. thanx
mau tanya nih…
$session->add('value_1','isinya');
yg dimaksud "value_1" dan "isinya" itu apa ya? saya belum paham betul.
Bisakah diberikan contoh yg simpel saja?
value_1 itu nama sessionnya
isinya itu isi dari value_1
contoh:
$session->add('ses_username','grandong');
maka saat di jalankan perintah
$session->get('ses_username');
akan di dapat nilai grandong
mudah-mudahan ngak salah tangkap akunya…
Aku comot ya tutorialnya gan. mohon ijin
wah mantap ni agan yg satu ini… thanks dah di replay
Lanjutkan…
oya satu lagi gan, sory bgt sy coba destroy ko ga bisa ya pada saat logout
public function actionLogout($destroySession=true)
{
Yii::app()->user->logout();
$this->redirect(Yii::app()->homeUrl);
}
itu coding sy, gmn solusinya ya?
saya sih biasanya pake Yii::app()->user->setState sih
ane juga pernah menggunakan cara kayak om petra tapi belum berhasil juga
tabelnya seperti ini
ane pakai cara kayak gini
protected/components/userIdentity.php
<?php
class UserIdentity extends CUserIdentity
{
public function authenticate()
{
private $_id;
public function authenticate()
{
$record=User::model()->findByAttributes(array('username'=>$this->username));
if($record===null)
$this->errorCode=self::ERROR_USERNAME_INVALID;
else if($record->password!== md5($this->password))
$this->errorCode=self::ERROR_PASSWORD_INVALID;
else
{
$this->_id=$record->UserID;
$this->setState('status', $record->status);
$this->errorCode=self::ERROR_NONE;
$this->setPersistentStates(array(
'password' => $this->password,
// set any other user data
//'id' => $record->UserID,
));
}
return !$this->errorCode;
}
public function getId()
{
return $this->_id;
}
}
kalau read pakai ini
echo Yii::app()->user->id;
dan keluarlah UserID = 1(maksudnya disini admin, kalau 2 itu user) (cara ini berhasil)
Yang jadi masalah di sini, saya hanya berhasil jika menggunakan id, kalau saya tambahkan coding
$this->setState('status', $record->status);
utuk read ane pakai ini
echo Yii::app()->user->status;
tapi cara itu ga bisa
muncul pesan
itu kira2 kenapa ya? Mohon sekali pencerahannya…
coba baca ini, mungkin bisa membantu:
Web User
status harus di definisikan dulu di class CWebUser
Alhamdulillah akhirnya berhasil juga
ini cara saya sesuai referensi dari Om Hermans
Ada 3 tahap
<?php
class WebUser extends CWebUser
{
private $_model;
function getStatus(){
$user = $this->loadUser(Yii::app()->user->id);
return $user->status;
}
function isAdmin(){
$user = $this->loadUser(Yii::app()->user->id);
return intval($user->status) == 1;
}
protected function loadUser($id=null)
{
if($this->_model===null)
{
if($id!==null)
$this->_model=User::model()->findByPk($id);
}
return $this->_model;
}
}
?>
tambahkan sintaks ini
'components'=>array( //sintaks ini sudah ada, cari aja
'user'=>array(
// enable cookie-based authentication
'allowAutoLogin'=>true,
'class' => 'WebUser', // Ini yg di tambahkan
),
protected/views/layout/main.php
echo Yii::app()->user->status;
Thanks For All, semoga ini bisa membantu juga buat yang lain