данные set () не передаются для просмотра - PullRequest
0 голосов
/ 15 февраля 2011

view /plans / index.ctp

<?php debug($plans); ?>

controllers /plan_controller.php (функция индекса)

function index() {
     $plansC = $this->Plan->find('all',
        array('contain' => array('PlanDetail' => array('fields' => array('id',
        'effective_date',
        'expiration_date',
        'active',
        'name',
        'plan_type_id',
        'max_benefit',
        'deductible',
        'preventive',
        'basic',
        'major',
        'ortho',
        'company_id',
        'plan_type_id',
        'plan_detail_note_id'),
        'Company'  => array('fields' => array(
            'id',
            'company_logo_url'
        )),
        'PlanType' => array('fields' => array(
            'id',
            'name'
        ))
    ))));

    debug($plansC);
    $this->set('plans',$this->paginate($planC));

Здесьявляется примером записи отладки index () изplan_controller.php (как вы можете видеть, что все данные правильно содержатся с использованиемвещественным):

[0] => Array
    (
        [Plan] => Array
            (
                [id] => 7
                [created] => 2011-01-10 14:11:40
                [modified] => 2011-02-03 18:35:29
                [plan_detail_id] => 32
                [monthly_cost] => 25.49
                [dental_cost] => 0.00
                [age_id] => 2
                [applicant_id] => 1
                [state_id] => 1
            )

        [PlanDetail] => Array
            (
                [id] => 32
                [effective_date] => 2011-01-10 14:07:00
                [expiration_date] => 2011-01-10 14:07:00
                [active] => 1
                [name] => Classic 1500
                [plan_type_id] => 2
                [max_benefit] => 0.00
                [deductible] => $75/year
                [preventive] => 90%
                [basic] => 75%
                [major] => 50%
                [ortho] => 
N/A


                [company_id] => 4
                [plan_detail_note_id] => 9
                [Company] => Array
                    (
                        [id] => 4
                        [company_logo_url] => nationwide_logo.png
                    )

                [PlanType] => Array
                    (
                        [id] => 2
                        [name] => Indemnity
                    )

            )

    )

Содержимые данные не передаютсяТолько данные, связанные с Plan и PlanDetail (без более глубоких связей, чем PlanDetail, например, типа Company или Plan), но отладка в контроллере индекса показывает все передаваемые данные!Но ни одна из этих данных не попадает в отладочную версию представления.

Кто-нибудь знает, является ли это ошибкой в ​​составеableable?

Ответы [ 2 ]

2 голосов
/ 15 февраля 2011

Вы должны либо paginate , либо find, вы не можете разбить на страницы найденный массив данных.Пагинация - это получение данных из базы данных.Замените ваш find звонок на paginate звонок.Сохраните результат вызова paginate в переменной и debug it, ваша проблема не в вызове set.

0 голосов
/ 15 февраля 2011

После 8 часов боли я решил ее :) и добавил нумерацию страниц для загрузки. В итоге я использовал compact () вместо запеченного set ().

function index() {
    //$this->Plan->find('all'); not needed
    $this->paginate['Plan'] = array('contain' => array('PlanDetail' => array('fields'   => array('id',
        'effective_date',
        'expiration_date',
        'active',
        'name',
        'plan_type_id',
        'max_benefit',
        'deductible',
        'preventive',
        'basic',
        'major',
        'ortho',
        'application_url',
        'company_id',
        'plan_type_id',
        'plan_detail_note_id'),
        'Company'  => array('fields' => array(
            'id',
            'company_logo_url'
        )),
        'PlanType' => array('fields' => array(
            'id',
            'name'
        ))
    )));
    $plans = $this->paginate('Plan');
    $this->set(compact('plans'));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...