2011-12-16 2 views
0

Пожалуйста, несите со мной, как я тёмный трюк noob. У меня есть это приложение, которое должно перейти на www.name.com/complexes/somecomplex/unitnumber. Я могу правильно заставить его перейти на сайт www.name.com/complexes/somecomplex, но я не знаю, как получить полный путь к моему номеру устройства.Как сказать cakephp, чтобы перейти к someurl.com/action/var1/var2

Вот мой контроллер:

class ComplexesController extends AppController { 
    public $name='Complexes'; 
    public $uses=array('User', 'Complex', 'Unit'); 
    public $layout='pagelayout'; 



    public function view() { 
    $this->set('complex', strtoupper($this->params['id'])); 
    $c=$this->Complex->find('first', array('conditions'=>array('complex_name'=>$this->params['id']))); 
    $this->set('complex_data', $c); 
} 

}

и вот мой маршрут

Router::connect('/complexes/:id', array('controller' => 'complexes', 'action' => 'view')); 

Где я пишу действие для вызова конкретного блока? Внутри действия «view» или другого действия под названием «unit»? И как я могу сказать торт, чтобы направить на это?

+0

Я хотел бы добавить, что я сделал создать функцию в мой контроллер называется единицы 'общественности функциональный блок() { \t \t \t \t $ this-> набор ('unitnum', strtoupper ($ this-> PARAMS [Ид «])); \t \t $ u = $ this-> Unit-> find ('first', array ('conditions' => array ('unitnum' => strtoupper ($ this-> params ['id'])))); \t \t $ this-> set ('unitdesc', $ u); 'но не знаю, как получить к нему доступ правильно. У меня есть все мои ассоциации моделей, которые работают правильно, поскольку я могу получить доступ ко всей моей информации в других контроллерах, используя те же ассоциации. – huzzah

+0

Я понял! Мне пришлось передать аргумент, называемый $ unit в моей функции view(), где я задал условия для поиска unitnumber, который я ввел в URL ($ unit). Будет ли отправлять код, когда stackoverflow позволяет мне опубликовать ответ (примерно через 5 часов ....) – huzzah

ответ

0

Я понял! Мне пришлось передать аргумент, называемый $ unit в моей функции view(), где я задал условия для поиска unitnumber, который я ввел в URL ($ unit). Итак, мой код закончился выглядеть так:

public function view($unit=null) { 
    $this->set('complex', strtoupper($this->params['id'])); 
    $c=$this->Complex->find('first', array('conditions'=>array('complex_name'=>$this->params['id']))); 
    $this->set('complex_data', $c); 
    $u=$this->Unit->find('first', array('conditions'=>array('unitnum'=>$unit))); 
    $this->set('unit', $u); 
} 

и в моих маршрутах файл я добавил эту строку:

Router::connect('/complexes/:id/*', array('controller' => 'complexes', 'action' => 'view')); 

И это сработало!

Смежные вопросы