$criteria = new CDbCriteria; // Classic method $criteria->addCondition('t.id = :id'); $criteria->params = array(':id' => Yii::app()->user->id); // Often used in search functions. Note: if passed value is empty, the WHERE is not added! $criteria->compare('t.id', Yii::app()->user->id); // This is my current favorite $criteria->addColumnCondition(array('t.id' => Yii::app()->user->id)); // A bit weird here, but you can also do this $criteria->addInCondition('t.id', array(Yii::app()->user->id));
Showing posts with label CDbCriteria. Show all posts
Showing posts with label CDbCriteria. Show all posts
Aug 8, 2014
exact same query: SELECT (..) WHERE (t.id=:ycp0).
Yii: working with multiple tables
public function rules()
{
return array(array('item_id', 'safe', 'on'=>'search'),);
}
public function relations()
{
return array(
'items' => array(self::BELONGS_TO, 'Menu','item_id'),
)
}
{
return array(array('item_id', 'safe', 'on'=>'search'),);
}
public function relations()
{
return array(
'items' => array(self::BELONGS_TO, 'Menu','item_id'),
)
}
public function attributeLabels()
{
return array('item_id'=>'Item Id',);
}
$criteria=new CDbCriteria;
$criteria->together = true;
$criteria->with = array('items');
$criteria->compare('id',$this->id);
$criteria->compare('type',$this->type);
$criteria->compare('items.name',$this->item_id);
view file
array(
'name'=>'item_id',
'value'=>'$data->items->name',
),
view file
array(
'name'=>'item_id',
'value'=>'$data->items->name',
),
Aug 5, 2014
Add OR Clause to addSearchCondition
$criteria->addSearchCondition('AuthAssignment.itemname', 'Staff');
$criteria->addSearchCondition('AuthAssignment.itemname', 'Waiter' , true , 'OR');
$criteria->addSearchCondition('AuthAssignment.itemname', 'Admin' , true , 'OR');
$criteria->addSearchCondition('AuthAssignment.itemname', 'Cashier' , true , 'OR');
$criteria->addSearchCondition('AuthAssignment.itemname', 'Waiter' , true , 'OR');
$criteria->addSearchCondition('AuthAssignment.itemname', 'Admin' , true , 'OR');
$criteria->addSearchCondition('AuthAssignment.itemname', 'Cashier' , true , 'OR');
Join two tables with CDbCriteria
$criteria=new CDbCriteria;
$criteria->alias = 'de';
$criteria->select = 'expences_type.type AS expences_type_name,de.id,de.driver_id,de.details,de.comment,de.price';
$criteria -> join = "inner join expences_type on expences_type.id = de.expences_type ";
$criteria->compare('id',$this->id);
$criteria->compare('driver_id',$this->driver_id);
$criteria->compare('expences_type',$this->expences_type);
$criteria->compare('details',$this->details,true);
$criteria->compare('comment',$this->comment,true);
$criteria->compare('price',$this->price,true);
$criteria->compare('request_date',$this->request_date,true);
$criteria->compare('paid_date',$this->paid_date,true);
$criteria->compare('update_date',$this->update_date,true);
$criteria->compare('update_by',$this->update_by);
$criteria->compare('create_date',$this->create_date,true);
$criteria->compare('create_by',$this->create_by);
$criteria->compare('expences_type.type',$this->expences_type_name);
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
));
$criteria->alias = 'de';
$criteria->select = 'expences_type.type AS expences_type_name,de.id,de.driver_id,de.details,de.comment,de.price';
$criteria -> join = "inner join expences_type on expences_type.id = de.expences_type ";
$criteria->compare('id',$this->id);
$criteria->compare('driver_id',$this->driver_id);
$criteria->compare('expences_type',$this->expences_type);
$criteria->compare('details',$this->details,true);
$criteria->compare('comment',$this->comment,true);
$criteria->compare('price',$this->price,true);
$criteria->compare('request_date',$this->request_date,true);
$criteria->compare('paid_date',$this->paid_date,true);
$criteria->compare('update_date',$this->update_date,true);
$criteria->compare('update_by',$this->update_by);
$criteria->compare('create_date',$this->create_date,true);
$criteria->compare('create_by',$this->create_by);
$criteria->compare('expences_type.type',$this->expences_type_name);
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
));
Aug 2, 2014
CDbCriteria with grid searching ability
$criteria=new CDbCriteria;
$res_id = CF::get_resid();
$criteria->compare('id',$this->id);
$criteria->compare('name',$this->name,true);
$criteria->compare('create_date',$this->create_date,true);
$criteria->compare('res_id',$res_id);
$criteria->compare('is_active',$this->is_active);
$criteria->addSearchCondition('is_active', 1);
$criteria->addSearchCondition('res_id', $res_id);
//condition = "is_active=:is_active AND res_id=:res_id";
//$criteria->params = array(':is_active'=>1,':res_id'=>$res_id);
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
'pagination'=>array(
'pageSize'=>4,
),
));
$res_id = CF::get_resid();
$criteria->compare('id',$this->id);
$criteria->compare('name',$this->name,true);
$criteria->compare('create_date',$this->create_date,true);
$criteria->compare('res_id',$res_id);
$criteria->compare('is_active',$this->is_active);
$criteria->addSearchCondition('is_active', 1);
$criteria->addSearchCondition('res_id', $res_id);
//condition = "is_active=:is_active AND res_id=:res_id";
//$criteria->params = array(':is_active'=>1,':res_id'=>$res_id);
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
'pagination'=>array(
'pageSize'=>4,
),
));
Subscribe to:
Posts (Atom)