Gii を使用して MySQL/MariaDB ビューからモデルを簡単に生成できますが、CRUD を生成しようとすると、次のエラー メッセージが表示されます。
frontend\models\MyModel に関連付けられたテーブルには、主キーが必要です。
Yii フレームワーク フォーラムの議論も参照してください。
Gii を使用して MySQL/MariaDB ビューからモデルを簡単に生成できますが、CRUD を生成しようとすると、次のエラー メッセージが表示されます。
frontend\models\MyModel に関連付けられたテーブルには、主キーが必要です。
Yii フレームワーク フォーラムの議論も参照してください。
解決策は次のとおりです。
CONCAT 関数などを使用して、ビューに ID を追加します。
生成されたモデルでメソッド primaryKey を上書きします。
コードは次のとおりです。
public static function primaryKey()
{
return array('view_id');
}
これは標準的なソリューションではないため、慎重に使用する必要があります。Yii はビューでアクティブ レコードを使用することを正式にサポートしていません。これは、異なる DBMS には異なるビュー仕様があり、通常は DB 書き込みをサポートしていないためです ( 2 )。