Crud ile Yönetim Paneli

Arkadaşlar Yii framework ile Yönetim Paneli oluşturmaya çalışıyorum. Bunun için Yii frameworkun sağladığı CRUD generator den oluşturmak istiyorum ama crud ile yapmaya çalıştığımda her seferinde yeni bir controller sayfası oluşturuyor ama ben tek bir controllerdan bunu yapabilir miyim?. Yani admin paneline giriş yaptığımda linkim http://localhost/websitem/admin oluyor ve ben menuler linkine tıkladığımda link yapım http://localhost/websitem/admin/menuler olmasını istiyorum ve crud generator un fonksiyonlarını kullanmak istiyorum. Bunun için ne yapmalıyım. Bilgi verirseniz sevinirim.

Crud ile oluşturduğun controller sadece ilgili tablo ile ilgili işlemleri yapar (delete,update,view,index)…

Tabiki bir controller’da diğer tablolar ile ilgili işlemleri yapabilirsin. Fakat diğer tablolara ait işlemleri yapman için controller içinde farklı actionlar oluşturman gerekir. Yada aynı action içerisinde farklı değişkenler ile işlemlerini gerçekleştirebilirsin.

Anladım ama ben link yapısına takıldım her tablo için crud yaptığımda bana her seferinde bir controller oluşturuyor. Admin sayfasında http://localhost/websitem/admin iken menu tablosu için crud yaptığımda http://localhost/websitem/menuler linkine gitmem lazım ben bu linke değilde http://localhost/websitem/admin/menuler linkine gitmek istiyorum. bunu nasıl düzeltebilirim onu merak ediyorum.

Aşağıdaki sayfayı incelemeni öneririm.

http://www.yiiframework.com/doc/guide/1.1/en/topics.url

hocam ben aslında düzgün anlatamıyorum. Yii için Url Management yapmışım sadece mvc mantğında merak ettiğim şey http://localhost/websitem/admin iken menü için crud kullandığımda http://localhost/websitem/menu oluyor ben bu şekilde kontroller olmasını istemiyorum http://localhost/websitem/admin/menu şeklinde olsun yani menu controller değilde method olsun istiyorum. Umarım bu sefer anlatabilmişimdir.

Ben derdinizin ne olduğu iyi anladım. Verdiğim örnekler dede derdinize çare var aslında. tekrar örnek vereyim.

admin controller’ınızın içine şöyle bir fonksiyonu manuel oluşturursanız işinizi görür.




public function actionMenu(){

// yapmak istediğiniz işlemler.

$this->render('menu'); //views/admin içine menu.php 

}



yada menu modeli ile crud oluşturduğunuzda ortaya çıkan linki route yapabilirsiniz.

Bunun için config de aşağıdaki örneğe benzer işlemler yapabilirisiniz.




'components'=>array(

        ......

        'urlManager'=>array(

            'urlFormat'=>'path',

            'rules'=>array(

                'menu'=>'admin/menu', //yada tam tersi olabilir 'admin/menu'=>'menu'

            ),

        ),

    ),



Hocam dediğiniz şekilde yaptım verdiğiniz linki de inceledim ama yine menu yü controller olarak görüyor

Benim yapmak istediğin menu yü method olarak alması

/admin/menu olarak girmeyi denediğinizde ne yapıyor?

urlmanager’daki rules’ı buraya yapıştırabilir misiniz?

‘urlManager’ => array(

        'urlFormat' => 'path',


        'showScriptName' => false,


        'caseSensitive' => false,


        'rules' => array(


            '<controller:\w+>/<id:\d+>' => '<controller>/view',


            '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',


            '<controller:\w+>/<action:\w+>' => '<controller>/<action>',


             'menulerimiz'=>'admin/menulerimiz',


        ),


    ),



'urlManager' => array(

'urlFormat' => 'path',

'showScriptName' => false,

'caseSensitive' => false,

'rules' => array(

'menulerimiz'=>'admin/menulerimiz', // başa almayı deneyin.

'admin/menulerimiz'=>'menulerimiz', // yukarıdaki çalışmazsa bunu deneyin

'<controller:\w+>/<id:\d+>' => '<controller>/view',

'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',

'<controller:\w+>/<action:\w+>' => '<controller>/<action>',

),

), 



Hocam ‘admin/menulerimiz’=>‘menulerimiz’ bu şekilde bu şekilde actionMenulerimiz tıklandığında Menu controllerin altındaki işlemler açılıyor tamam ama bu şekilde menu controllerin içindeki crud fonksiyonlarının tüm linklerini düzenlemem lazım artı 1 tane menu değil 10 larca menu olacak bu şekilde işlemler baya uzayacak daha kısa bir yolu yok mu bunun




'urlManager' => array(

'urlFormat' => 'path',

'showScriptName' => false,

'caseSensitive' => false,

'rules' => array(

'admin/menulerimiz'=>'menulerimiz',

'admin/menulerimiz/<action:\w+>/<id:\d+>'=>'menulerimiz/view', // buna benzer bişiler olması lazım. aşağıdaki mantıkla deneyerek çözebilirsiniz. başka bir yoluda malesef yok.

'<controller:\w+>/<id:\d+>' => '<controller>/view',

'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',

'<controller:\w+>/<action:\w+>' => '<controller>/<action>',

),

), 



böyle link yapılarını düzenleyeceğime crud yapısını kullanmasam yii frameworkk te çok fazla kaybım olur mu. Proje geliştirdikçe öğrenirim

fazla kaybının olacağını zannetmiyorum. Yii’de active record yapısına ne kadar hakim olduğunla alakalı bir durum.

Yii ye yeni başlıyorum ama active record olayı daha basit öğrenmem uzun sürmez. Değerli fikirleriniz için de çok teşekkür ederim