我有关系模型:
public function relations()
{
return array(
'fidistr' => array(self::BELONGS_TO, 'Distributors', 'fidistr_id', 'order'=>'fsname'),
'fitown' => array(self::BELONGS_TO, 'Town', 'fitown_id'),
'distributorsPointMails' => array(self::HAS_MANY, 'DistributorsPointMail', 'fidistr_point_id'),
'distributorsPointPhones' => array(self::HAS_MANY, 'DistributorsPointPhones', 'fidistr_point_id'),
);
}
我想通过" fsname"来订购数据。来自相关表格。我试过这个:
$models = DistributorsPoint::model()->findAll('fitown_id=:id', array('id' => $_POST['city_id']));
但仍会返回未分类的数据。请帮助。
答案 0 :(得分:1)
关系上的order
仅在延迟加载关系时使用。 From the Yii guide on relations:
注意:当使用eager加载诸如'order'之类的关系选项时, 'group','having','limit'和'offset'将被忽略。你应该 如果您愿意,可以在主要模型标准级别设置此类参数 它们将被应用。
您可以传递条件数组而不是字符串作为findAll()
的第一个参数。这将用于初始化CDbCriteria
对象。要按关系排序,您需要使用eager load with()
建立{{3}}关系。
$models = DistributorsPoint::model()
->with('fidistr')
->findAll(array(
'condition' => 'fitown_id=:id',
'order' => 'fidistr.fsname',
'params' => array(':id' => $_POST['city_id'])
));