miralay
(Ibrahimhalilucan)
January 14, 2016, 1:33pm
1
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.
McQueen
(Mail)
January 14, 2016, 1:50pm
2
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.
miralay
(Ibrahimhalilucan)
January 14, 2016, 2:08pm
3
McQueen:
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.
McQueen
(Mail)
January 14, 2016, 2:12pm
4
miralay
(Ibrahimhalilucan)
January 14, 2016, 2:38pm
5
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.
McQueen
(Mail)
January 14, 2016, 2:48pm
6
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'
),
),
),
miralay
(Ibrahimhalilucan)
January 14, 2016, 3:10pm
7
McQueen:
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ı
McQueen
(Mail)
January 14, 2016, 3:15pm
8
/admin/menu olarak girmeyi denediğinizde ne yapıyor?
urlmanager’daki rules’ı buraya yapıştırabilir misiniz?
miralay
(Ibrahimhalilucan)
January 14, 2016, 3:40pm
9
‘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',
),
),
McQueen
(Mail)
January 14, 2016, 3:43pm
10
'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>',
),
),
miralay
(Ibrahimhalilucan)
January 14, 2016, 3:51pm
11
McQueen:
'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
McQueen
(Mail)
January 14, 2016, 3:55pm
12
'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>',
),
),
miralay
(Ibrahimhalilucan)
January 14, 2016, 3:58pm
13
McQueen:
'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
McQueen
(Mail)
January 14, 2016, 4:22pm
14
fazla kaybının olacağını zannetmiyorum. Yii’de active record yapısına ne kadar hakim olduğunla alakalı bir durum.
miralay
(Ibrahimhalilucan)
January 15, 2016, 8:53am
15
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