CakePHP: используя тот же макет - PullRequest
1 голос
/ 08 февраля 2012

В моем "CouponsController.php" у меня есть следующие 2 функции:

public function index() {
    $this->set('coupons', $this->Coupon->find('all'));
}

public function restaurants() {
    $this->set('coupons', $this->Coupon->findBycategory_id('1'));
    $this->render("index"); 
}

По сути, я хочу, чтобы индексная функция возвращала все купоны, а рестораны возвращали только категорию 1 (но я хочу использовать один и тот же файл представления).

Я получаю эту ошибку:

Notice (8): Undefined index: Coupon [APP/View/Coupons/index.ctp, line 16]

Это из-за того, как массив возвращается для каждого из них. Вот мой файл VIEW и результаты для каждой страницы:

Coupons/index.ctp:
foreach ($coupons as $c) {
    print_r($c);
}

INDEX function:
Array ( [Coupon] => Array ( [id] => 1 [vendor_id] => 1 [category_id] => 1 [title] => $10 For Whatever [price] => 10.00 [value] => 20.00 [start_at] => 2012-02-07 12:03:00 [end_at] => 2012-02-29 12:03:05 [details] => Test [terms] => Test [mini_views] => 0 [large_views] => 0 [created] => 2012-02-08 12:03:12 ) ) Array ( [Coupon] => Array ( [id] => 2 [vendor_id] => 2 [category_id] => 2 [title] => Test [price] => 100.00 [value] => 200.00 [start_at] => 0000-00-00 00:00:00 [end_at] => 0000-00-00 00:00:00 [details] => [terms] => [mini_views] => 0 [large_views] => 0 [created] => 2012-02-08 12:14:03 ) )

RESTAURANTS function:
Array ( [id] => 1 [vendor_id] => 1 [category_id] => 1 [title] => $10 For Whatever [price] => 10.00 [value] => 20.00 [start_at] => 2012-02-07 12:03:00 [end_at] => 2012-02-29 12:03:05 [details] => Test [terms] => Test [mini_views] => 0 [large_views] => 0 [created] => 2012-02-08 12:03:12 )

1 Ответ

1 голос
/ 08 февраля 2012

Ну, это просто, как CakePHP возвращает его, оборот будет

foreach ($coupons as $coupon) {
    $c = $coupon;
    if (isset($coupon["Coupon"])) { // if is set index in array ["Coupon"] {
        $c = $coupon["Coupon"];
    }
    print_r($c);
}

или

public function restaurants() {
    $params = array('conditions' => array('Coupon.category_id' => 1));

    $this->set('coupons', $this->Coupon->find('all', $params));
    $this->render("index"); 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...