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 ![]()