如何在活动记录中使用findAllBySql回显数据

时间:2013-01-15 22:24:05

标签: php oop activerecord yii

这应该返回大约五个位置的列表。它什么都不返回,没有错误。我已经使用mysql workbench测试了sql。它返回数据就好了。现在我正在编写后端,所以我不关心使用视图或数据提供者。我只是确保我的后端功能正常工作。那么考虑到这一点,你将如何返回findAllBySql检索的数据?

class CashLogic
{
  public function AllLocations()
    {
        $model = new Locations;
        $allLocations = $model->findAllBySql("SELECT name from locations");
        return $allLocations; 
    }  

}

class SiteController extends Controller
{
  public function actionIndex()
    {
        $model = new CashLogic;
        $data = $model->AllLocations();
        return $data;
    }
}

1 个答案:

答案 0 :(得分:1)

findAllBySql()方法返回一组模型。从您的代码中,您似乎只需要names个位置。另一种方法是

 $AllLocations=CHtml::listData(Locations::model()->findAll(),'name','name');

这将返回array('name'=>'name','name'=>'name')形式的数组。更好的解决方案是将第一个name替换为locations表的主键。