CakePHP'de bir diğer denetleyici bir denetleyici yükleyin

2 Cevap php

kendi kontrolörü, her biri birden fazla sayfa kullanarak, bir web uygulaması geliştirme im.

Sorun artık (farklı denetleyicisi ile) başka bir sayfa için gerekli olan bir sayfa için oluşturulan bir kontrol olarak, bazı değişkenler, olmasıdır.

Onun için ben başka birine bir denetleyici yüklemeniz gerekir.

I did this by adding App::import('Controller', 'sections');

$sections= new sectionsController; $sections->constructClasses();

kontrolöre, ama bu iş gibi görünüyor doens't ..

Belki u adamlar bazı fikirler var mı?

Önceden thnx!

2 Cevap

Ben size silah için bazı mermi gerekiyorsa MVC architectural pattern., Sadece mermi kendisi almak konusunda kafanızda bazı yanlış anlamalar olduğunu düşünüyorum, ve bu it.So Umarım anlarsın başka bir silah almak için gerekliyse değil yükleme kontrolör gerçekten kötü bir fikirdir.

Also if you want some variables accessable by all controllers,as Gaurav Sharma mentioned ,you can use Configure::write() to store data in the application’s configuration app/config/core.php.e.g

Configure::write('somekey',$someval);

Sonra herhangi bir denetleyicisi Configure::read('somekey') ile $someval alabilirsiniz.

Ben bu sabah üzerinde çalışıyoruz. Ben aslında bir veritabanından kontrolörü adı almak, ama ben bunun yerine değişkenleri kullanmak için değiştirdik.

$controller_name = "Posts"; // the name of the controller.
$action = "index"; // The action we want to call.

App::import('Controller', $controller_name); 

// Now we need the actual class name of the controller.
$controller_classname = $controller_name . 'Controller'; 

$Controller = new $controller_name;
$Controller->variable_name = "something"; // we can set class variables here too.

// Now invoke the dispatcher so that it will load and initialize everything (like components)
$d = new Dispatcher();
$d->_invoke($Controller, array('pass'=> '', 'action' => $action));

// And exit so it doesn't keep going.
exit(0);

I honestly didn't bother figuring out what 'pass' is for (I assume variables), but it throws a warning without it. You will also need to explicitly call $this->render in your $action.