find()和findBySql()都返回一个字符串,其中所有属性连接在一起,这对我来说不是很有用。
$customers = Customer::model()->find("
CONCAT( fName, ' ', lName ) LIKE ?
", array( '%' . $searchVal . '%'));
我怎样才能获得像对象或数组一样有用的东西,所以我可以做这样的事情?
$str = '';
foreach ($customers as $customer){
$str .= "<option>" . $customer->fName . " " . $customer->lName . "</option>" ;
}
答案 0 :(得分:3)
没有人被切除术。实际上,有几个函数可用于查询db,并且所有这些函数在不同的场景中都很有用。
find() returns the first row satisfying the specified condition
findByPk() returns the row with the specified primary key
findByAttributes() returns the first row using the specified SQL statement
findBySql() returns the first row using the specified SQL statement
findAll() returns all rows satisfying the specified condition
findAllByPk() returns all rows with the specified primary keys
findAllByAttributes() returns all rows with the specified attribute values
findAllBySql() returns all rows using the specified SQL statement
所有这些功能都有其用途,只需使用适合您场景的功能。
答案 1 :(得分:0)
尝试FindAll()而不是find()。 find()适用于单个结果。
$customers = Customer::model()->findAll("
CONCAT( fName, ' ', lName ) LIKE ?
", array( '%' . $searchVal . '%'));
答案 2 :(得分:0)
find返回第一个对象findAll返回符合条件的所有对象的返回列表...只需使用你需要的东西......它们不返回字符串