Получение данных из базы данных в CakePHP Routes


person coolguru4ever    schedule 05.12.2010    source источник


Ответы (2)


Сначала создайте поле с именем category_url_title в таблицах категорий. Затем добавьте следующую маршрутизацию

//Route dynamic pages
Router::connect(
    '/categories/:category_url_title',
    array('controller'=>'categories', 'action'=>'view'),
    array(
        'category_url_title' => '(?!add|view|delete\b)\b[a-zA-Z0-9_-]+',
        'pass'=>array('category_url_title')
    )
);

И метод просмотра в контроллере категорий будет выглядеть примерно так:

function view($category_url_title=null) {

    $category = $this->Category->find('first', array('conditions'=> array('Category.category_url_title'=>$category_url_title)));
    $this->set(compact('category'));
}

Надеюсь, что это поможет вам.

person Musa    schedule 05.12.2010

У вас может быть что-то вроде этого в ваших маршрутах:

Routes::connect('/category/*', array('controller' => 'categories', 'action' => 'view'));

Затем в вашем category_controller::view($catName) вы проверяете, верно ли это:

if($this->Category->hasAny(array('name' => $catName))) {
   // your code here
} else {
   // set message in the view saying category not found
}

Есть много способов справиться с этим, это только один, который я помню с рук.

person Andreas Wong    schedule 05.12.2010