public CActiveRecord find(mixed $condition='', array $params=array ( ))
Explanation:
Find a single active record with specified conditions
Always return first record in the result set
$condition can be either
1. array
2. CDbCriteria
3. string
When $condition is an array, CDbCriteria class will map each key to predefined field name. Below is a list of predefined field name:
a. $select [default = '*']
b. $distinct [default = FALSE]
c. $condition [default = '']
d. $param [default = array()]
e. $limit [default = -1]
f. $offset [default = -1]
g. $order [default = '']
h. $group [default = '']
i. $join [default = '']
j. $having [default = '']
k. $with - alias of the table name [default = 't']
l. others - $alias, $together, $index, and $scopes
l. others - $alias, $together, $index, and $scopes
When $condition is a string, system will map it to CDbCriteria->$condition (item c above)
Example:
1. $model = MyModel::model()->find("id=1");
2. $model = MyModel::model()->find("id={$id}");
3. $model = MyModel::model()->find("value='mystring'");
4. $model = MyModel::model()->find("value='{$mystring}'");
5. $model = MyModel::model()->find("id=1 ORDER BY colA ASC");
6. $model = MyModel::model()->find("id=:param", array(":param"=>1));
7. $model = MyModel::model()->find("id=:param1 AND colA=:param2", array(":param1"=>1, ":param2"=>'mystring'));
8. $model = MyModel::model()->find(array('select'=>'colA', 'condition'=>'id=1', 'order'=>'colB DESC'));
8. $model = MyModel::model()->find(array('select'=>'colA', 'condition'=>'id=1', 'order'=>'colB DESC'));
Internal:
find($condition, $param)
|-$criteria = createCriteria($condition, $param)
Note: $criteria is a CDbCriteria
|-query($criteria, FALSE)
Note: FALSE means add "LIMIT 1" to SELECT statement
(refer yii\framework\db\ar\CActiveRecord.php)
3 comments:
Good note! This been useful for me. Thanks.
Post a Comment