GSTAR
(Omzy83)
1
I never really properly understood how findAllByAttributes() works. I want to do the following find:
find all records in Enquiry model where enquiry_status < 5 AND enquiry_date > strtotime(‘now’)
start_datetime will of course need to be converted to strtotime in order to perform the comparison.
zaccaria
(Matteo Falsitta)
2
You cannot achive with findAllByAttributes.
This function check if the attribute are = to the values. You should use CDbCritera.
$criteria=new CDbCriteria;
$criteria->addCondition("enquiry_status < 5");
$criteria->addCondition("enquiry_date > strtotime('now')");
CactiveRecord::model()->findAll($criteria);
GSTAR
(Omzy83)
3
Thanks. I just did it like this instead:
Enquiry::model()->findAll('enquiry_status < 5 AND enquiry_date >=:enquiry_date',
array('enquiry_date'=>date('Y-m-d H:i:s')));
I thought findAllByAttributes would make it easier or something.
DavidHHuan
(Davidhhuan)
4
$models = Enquiry::model()->findAllByAttributes(
array(),
"enquiry_status < 5 AND enquiry_date >=:enquiry_date",
array('enquiry_date'=>date('Y-m-d H:i:s')))
);
The first parameter is an array, it will change to $key=$value, for example,
$models = Enquiry::model()->findAllByAttributes(
array("id"=>1),
"enquiry_status < 5 AND enquiry_date >=:enquiry_date",
array('enquiry_date'=>date('Y-m-d H:i:s')))
);
The sql will be
SELECT * FROM 'Enquiry' 't' WHERE id=1 AND enquiry_status < 5 AND enquiry_date >=:enquiry_date
Orijit
(B Orijit)
5
I found this pretty simple.
$models = Enquiry::model()->findAllByAttributes(array(‘enquiry_status’=>5,‘enquiry_date’=>date(‘Y-m-d H:i:s’)));
Is this simple enough?
mdomba
(Maurizio Domba Cerin)
6
Your code checks that enquiry_status equals 5… but in the question it was needed that enquiry_status is less then 5, same for date…
namgivu
(Namgivu)
7
Inspired by DavidHuan, here is my favored usage.
$found = YourModelClass::model()->findAllByAttributes(
array(),
$condition = 'columnNameInDb = :someVarName AND columnNameInDb02 > :someVarName02',
$params = array(
':someVarName' => $someVarNameValue,
':someVarName02' => $someVarNameValue02,
)
);
Hope it helps,
Nam.
Sisko
(Cjaegle)
8
My favourite would be CDbCriteria->compare().
$criteria = new CDbCriteria();
$criteria->compare('enquiry_status', '<'. 5);
$criteria->compare('enquiry_date', '>' . strtotime('now'));
Enquiry::model()->findAll($criteria);
But there are many ways to do that.
rtfm
(Hofrob)
9
FYI
Is the same as
$found = YourModelClass::model()->findAll('columnNameInDb = :someVarName
AND columnNameInDb02 > :someVarName02', array(
':someVarName' => $someVarNameValue,
':someVarName02' => $someVarNameValue02,
)
);
arip
(Arips4)
10
It is Amazing I need it
thank.
I need to fetch records based on following conditions :
if(isset($corporateid) && !empty($corporateid)) {
$cond1 =” CORPORATEID=$corporateid “;
}
if(isset($brokerid) && !empty($brokerid)) {
if($cond1!=”){$cond1 .=” AND “;}
$cond1 .=” AGENTID=$brokerid”;
}
if(isset($RMId) && !empty($RMId)) {
if($cond1!=”){$cond1 .=” AND “;}
$cond1 .=” REPORTINGMANAGERID=$RMId “;
}
$cond1 .=” AND PAYMENTSTATUS=’CONFIRM’ “;
$sql=”select *from CRMTOPUPPROPOSERDETAILS where $cond1
}
The above condition code is written in simple php but i need to create these condition in Yii frame work using CActiveDataProvider;
Pls help me to solve this problem.
iirfan
(Irfan Gokak)
12
$some_variable = Model_name::model()->findAllByAttributes(array(‘fieldname’=>‘some_value’));
thats it…