Как сказать CakePHP использовать функцию index ($ type), чтобы просто перейти на страницу индекса? - PullRequest
0 голосов
/ 07 февраля 2012

У меня есть это приложение, которое направляет пользователей к типам аттракционов с помощью этой функции:

public function index($type=null) {
        $this->set('title','What to do when you visit Gulf Shores');

        $this->paginate['Attraction']=array(
                'limit'=>9,
                'order'=>array('Attraction.id'=>'asc'),
                'conditions'=>array(
                        'active'=>1,
                        'attr_type'=>$type
                        )
                );
        $c=$this->paginate('Attraction');
        $this->set('attractions', $c);

}

, и это прекрасно работает, но я бы хотел, чтобы пользователи также могли переходить на главную страницу / аттракционы/ это не отфильтровывает по attr_type.Эта функция показывает нулевые результаты (как, очевидно, $ type still = null) для первой страницы.Есть ли какой-то шаг, который я пропускаю или в моем контроллере должен быть файл и функция view.ctp?

1 Ответ

0 голосов
/ 07 февраля 2012

Вы можете использовать оператор if для определения условий:

public function index($type = null) {
    $this->set('title', 'What to do when you visit Gulf Shores');

    $conditions = array();  //create $conditions outside of the if statement
    if ($type) {    //if $type is equal to anything other than null or 0
        $conditions = array(
            'active' => 1,
            'attr_type' => $type
        );
    } else {
        $conditions = array(
            'active' => 1
        );
    }

    $this->paginate['Attraction'] = array(
        'limit' => 9,
        'order' => array('Attraction.id' => 'asc'),
        'conditions' => $conditions
    );
    $c = $this->paginate('Attraction');
    $this->set('attractions', $c);
}

На самом деле нет необходимости создавать $conditions вне оператора if в PHP, но это происходит во многих других языках программирования из-за области действия.

Если вы создаете переменную внутри оператора if, доступна ли она вне оператора if?

...