Пользовательские классы маршрутов CakePHP — как передавать аргументы?

Я создал собственный класс маршрута и хочу иметь возможность передавать настройки/параметры конструктору, чтобы его можно было настроить. Можно ли это сделать?

Документация по пользовательским классам маршрутов:

http://book.cakephp.org/2.0/en/development/routing.html#custom-route-classes

Мой собственный класс маршрута:

https://github.com/Signified/CakePHP-Model-Route-Class


person Robert Love    schedule 11.11.2011    source источник


Ответы (1)


Вероятно, вы можете просто передать любые настройки/параметры, которые у вас могут быть в опциях вашей функции Router::connect.

App::import('Lib', 'ModelRoute');
Router::connect('/', array('controller' => 'pages', 'action' => 'display'),
    Array('routeClass' => 'ModelRoute',
          'someMoreOptions' => 'OptionValue' ));

Затем вы можете получить ключ someMoreOptions в своем конструкторе.

public function __construct($settings = array())
    {
        $this->settings = Set::merge($this->settings, $settings);
        // Now you can do something with the option passed.
        if(isset($this->settings['someMoreOptions'])
            DoSomethingWith($this->settings['someMoreOptions']);
    }
person Dan737    schedule 11.11.2011