2015-03-10 13 views
6

Yii2 gelişmiş şablonuna dayanan bir ürün yapıyorum.Normal uygulama geçişinin bir parçası olarak başlangıç ​​RBAC geçişlerini çalıştırın

Bu ürün ve gelecekteki dağıtımların bir parçası olarak, düzenli bir Yii2 geçişinde Yetkilendirme ile ilgili tabloları otomatik olarak oluşturmaya çalışıyorum. Son kullanıcı ürünü yüklediğinde ve düzenli Yii geçiş komutlarını çalıştırdığında, tamamen işlevsel bir kullanıcı yönetimine ve yetkisine sahip olması gerekir.

Çalışmaya izin vermek için Yii2 RBAC documentation page, 4 tablonun gerekli olduğunu belirtir (auth_ *). dokümantasyon aşağıdaki taşıma işleminden tarafından oluşturulur belirtiyor:

yii migrate [email protected]/rbac/migrations

olacağım düzenli göç içine onun için bu özel geçiş kodunda çalıştırarak son kullanıcı bu ekstra zorluk ofset istiyorum

common/migrations'da saklanır.

Bunun için herhangi bir kolay çözüm?

cevap

4

Çalıştırmam gereken geçiş komutlarımı koyduğum bir migrate.sh dosyası oluşturdum. Bu, aynı anda birden çok yerden taşınmamı sağlar. Oldukça basit, buraya bir göz atın: https://github.com/Mihai-P/yii2-app-advanced/blob/master/migrate.sh

./yii migrate/up'u çalıştırmak yerine, her yerden güncelleme yapabilecek sh migrate.sh'u çalıştırıyorum.

Bunun gerçek noktası şudur: Yii'nin size tam olarak verdiği şeyi yapmak zorunda değilsiniz. Bu sadece sizin üzerine inşa edeceğiniz bir şablon. Çatalla, değiştir, kendi yap.

+0

Tek bir merkezi komut dosyası veya bir .sh dosyası oluşturma fikri güzeldir. Soruna farklı bir açıdan bakıyordum. Çözüm için teşekkürler. Kabul edildi olarak işaretlendi. –

+0

Geçmişte başka şeyler inşa ettim, ancak bu otomatik dağıtımı yapan kişi tarafından nihayetinde talep edilen şeydi. Bir kabuk betiği olmak, dağıtımı oldukça kolay bir şekilde yapmanızı sağlar. –

1

deneyin konsolu/config/Main.php eklemek:

'controllerMap' => [ 
     'migrate' => [ 
      'class' => 'console\controllers\MigrateController', 
      'migrationLookup' => [ 
       '@console/migrations',    
       '@yii/rbac/migrations', 
      ] 
     ] 
    ], 
0

başka yaklaşım da göçler klasörüne rbac_init göçünü kopyalamak edilir (* .sh dosyasını kullanarak değil):

cp vendor/yiisoft/yii2/rbac/migrations/m???????_rbac_init.php console/migrations/ 

Şimdi, php yii migrate çalıştırdığınızda, rbac_init geçişi dahil edilecektir.

İlgili konular