<?php
class InvitationAdmin extends Invitation
{
public $adminName='Invitations'; // will be displayed in main list
public $pluralNames=array('Invitation','Invitation');
public $serviceChoices=array("facebook"=>"facebook","web"=>"web","twitter"=>"twitter");
public function attributeLabels()
{
return array(
'id' => 'ID',
'user_id' => 'User ID',
'email' => 'Friend_Email',
'service' => 'Friend_Service',
);
}
public function rules()
{
// NOTE: you should only define rules for those attributes that
// will receive user inputs.
return array(
array('id,service_id','safe'),
array('user_id, email, service', 'required'),
array('user_id', 'numerical', 'integerOnly'=>true),
array('email, service', 'length', 'max'=>45),
array('id, user_id, email, service, service_id', 'safe', 'on'=>'search'),
array('user_id', 'Usercheck'),
);
}
public function Usercheck()
{
$user=User::model()->findbyPK($this->user_id);
if(!$user) $this->addError('user_id','There is no such user');
}
public function adminSearch()
{
return array(
'columns'=>array(
'id',
'user_id',
'user.first_name',
'user.last_name',
'user.email',
/*array(
'name'=>'useremail',
'value'=>'$data->user->email',
),*/
'email',
'service_id',
array(
'name' =>'service',
'filter'=>array('web'=>'web','facebook'=>'facebook','twitter'=>'twitter'),
),
)
);
}
public function attributeWidgets()
{
return array(
array('service','dropDownList'),
);
}
public function search()
{
// Warning: Please modify the following code to remove attributes that
// should not be searched.
$criteria=new CDbCriteria;
$criteria->compare('t.id',$this->id,true);
$criteria->compare('t.service_id',$this->service_id,true);
$criteria->compare('t.user_id',$this->user_id,true);
$criteria->compare('t.email',$this->email,true);
$criteria->compare('t.service',$this->service,true);
$criteria->with=array('user'); //4
//$criteria->compare('user.id',$this->id,true);
$criteria->compare('user.first_name',$this->user_id);
$criteria->compare('user.last_name',$this->user_id);
$criteria->compare('user.email',$this->user_id);
$sort = new CSort();
$sort->defaultOrder = 't.id DESC';
$sort->attributes = array(
'id'=>array(
'asc'=>'t.id asc',
'desc'=>'t.id desc',
),
'email'=>array(
'asc'=>'t.email desc',
'desc'=>'t.email asc',
),
'user_id'=>array(
'asc'=>'t.user_id desc',
'desc'=>'t.user_id asc',
),
'service'=>array(
'asc'=>'t.service desc',
'desc'=>'t.service asc',
),
'service_id'=>array(
'asc'=>'t.service_id desc',
'desc'=>'t.service_id asc',
),
'user.first_name'=>array(
'asc'=>'user.first_name desc',
'desc'=>'user.first_name asc',
),
'user.last_name'=>array(
'asc'=>'user.last_name desc',
'desc'=>'user.last_name asc',
),
'user.email'=>array(
'asc'=>'user.email desc',
'desc'=>'user.email asc',
),
);
//$criteria->compare('useremail',$this->user_id,true);
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
'sort'=>$sort,
));
}
public function defaultScope()
{
return array(
'select' => 'id,user_id,email,service,service_id',
);
}
}
?>
I made a class.
and have relation
'user'=>array(self::BELONGS_TO, 'User', 'user_id'),
the problem is that when in search i add with=array(‘user’) after i can make search by column user_id(i have data for these table), but when i start search by these column nothing ca found. For example ,if ihave 31,32 and i enter in search column 32 nothing found, when i delete with=array(‘user’) and other staff for relation table, everything work?