I can't find too much documentation on applying the default scope for a model in yii, I was wondering if anyone could explain or point me in the right direction.
Quick version of my question:
Is it possible to add a relation to the default area or add default criteria “c” for each AR search on the model?
Long version of my question:
A brief summary of my application:
I have two models: providerand item. Who has the ratio m: 1, where the provider can have many elements, but each element can have only one provider.
So far I have this relationship:
class Provider extends CActiveRecord
{
...
public function relations()
{
return array(
'items' => array(self::HAS_MANY, 'Item', 'id_provider', 'order'=>'rank DESC'),
);
}
...
}
class Item extends CActiveRecord
{
...
public function relations()
{
return array(
'provider' => array(self::BELONGS_TO, 'Provider', 'id_provider'),
);
}
...
}
defaultScope, (.. , offline = false):
public function defaultScope()
{
$alias = $this->getTableAlias(false,false);
return array(
'condition'=>"`$alias`.`offline` = false",
);
}
, , , (.. , provider.offline = false, item.offline = false).
defaultScope:
public function defaultScope()
{
$alias = $this->getTableAlias(false,false);
return array(
'join'=>"JOIN `provider` AS `provider` ON `provider`.`id` = `$alias`.`id_provider`",
'condition'=>"`$alias`.`offline` = false AND `provider`.`offline` = false",
);
}
JOIN ON (CDbCommand failed to execute the SQL statement: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'provider.offline' in 'on clause').
defaultScope:
public function defaultScope()
{
$alias = $this->getTableAlias(false,false);
return array(
'with'=>"provider",
'condition'=>"`$alias`.`offline` = false AND `provider`.`offline` = false",
);
}
: SQLSTATE [42S22]: : 1054 "provider.offline" "on" ).
?