Hi,
I’m wondering, is it possible to pass a parameter(variable) to a scope used in relation.
Example:
// relation in Product model
public function relations()
{
return array(
'reg' => array(self::HAS_ONE, 'ProductRegional', 'product_id', 'scopes' => 'lang'),
);
}
// scope in ProductRegional
public function lang($langId = 1)
{
$this->getDbCriteria()->mergeWith(array(
'alias' => 'pr',
'condition'=>'pr.lang_id = :langId',
'params'=>array(':langId' => $langId),
));
return $this;
}
// instantiate product
$product = Product::model()->findByPk(123);
$regionalData = $product->reg; // returns ProductRegional where lang_id=1
$regionalData = $product->reg(1); // doesn't even go in the scope, returns null