2016-03-24 11 views
3

Çalıştığım bir mariadb görünümünün gii'sini kullanarak bir Model oluşturdum.Yii2'de Gii'yi kullanarak bir veritabanı görünümünden bir CRUD oluşturma

Ardından model için gii CRUD jeneratör kullanmak çalışıyorum, ben görünümü bir PK olmadığı için gayet anlaşılabilir hatayı

The table associated with app\models\Future must have primary key(s). 

olsun. Ben modeline primaryKey işlev eklemek için diyor birkaç tavsiye yüzden kimliği aslında görünümün bir parçası olan temel bir tablo, PK olan sütun adı olma ile

public function primaryKey() 
{ 
    return 'id'; 
} 

çalıştı bulundu. Ama bu
Cannot make static method yii\db\ActiveRecord::primaryKey() non static in class app\models\Future 

Yani yöntem statik hale çalıştı bir durumla başarısız ama o zaman bu etrafında bir yolu var mı yeni istisna

Undefined index: i 
1. in /home/adrian/projects/mtview/mtview/vendor/yiisoft/yii2-gii/generators/crud/Generator.php at line 509 

atar, ya da üretmek için GII kullanmak artık mümkün değildir Veritabanı görünümleri için kod?

cevap

-1

Aklıma gelen en basit iş, isteğinizle aynı yapıda (birincil anahtar alanıyla) tablo oluşturmak olacaktır. CRUD'unuzu oluşturmak için bu tabloyu kullanın. Şimdi yeni oluşturulan tablonuzu sadece View ile değiştirin.

2

Basit Model sınıfına eklemek

public static function primaryKey() 
{ 
    return ['id']; 
} 
İlgili konular