I just struggled over a strange behavior with database views and relations for which I couldn’t find any solutions on the web. Database views obviously don’t have primary keys, but that shouldn’t be a problem for the relations defined in the model:
public function relations()
{
return array(
'rELATED' => array(self::HAS_MANY, 'Related', array('RelatedID' => 'RelatedID')),
)
}
The SQL is well formed and gets results when it’s queried on the DB server. But the model itself just stays empty as soon as a relation is requested! No Error will be shown or any logs written.
View::model()->with('Related')->findAll());
As soon as a fake PK is manually is defined in the model, everything works fine…
public function primaryKey()
{
return 'ViewID';
}
I don’t really get it why the PK should be defined to use relations, but at least I think there should be an error message instead of just nothing.
System:
Yii 1.1.14
Apache/2.2.21 (Win32)
Microsoft SQL Server 2012 (sqlsrv apache module)