Changes
Title
changed
Named scope - Get orphan AR without loosing primary key
Category
unchanged
Tutorials
Yii version
unchanged
Tags
unchanged
Content
changed
Sometime, in a many-to-many relation, you need to retrieve AR that aren't linked. In practice, AR with null value in the join table. So you implements a criteria like this :
```php
public function scopeUnused( $useAnd = true )
{
$join = " left outer join composed_by j on t.ID = j.ID ";[...]
return $this;
}
```
You face the problem that your AR's pk are empty ?!! It come from the fact that the generated sql query returns by default all columns (select *). To overcome this, you need to explicitly specify the columns of your AR in the select property of the DBCriteria
```php
public function scopeUnused( $useAnd = true )
{
$join = " left outer join composed_by j on t.ID = j.ID ";[...]
return $this;
}
```