как извлечь значение из массива - Cakephp - PullRequest
0 голосов
/ 14 сентября 2009

У меня есть таблица с именами отчетов, имеющая (id,form_id,title)

и другая табличная форма (id,name)

в моих отчетах.ctp я перечисляю название всех своих отчетов, выбирая его из таблицы, используя

function reports()
{
    $allreports= $this->Report>find('all',
                                    array('conditions'=>array('Report.user_id'=>$userId),
                                          'group' => array('Report.report_id')));

    foreach($allreports as & $report):
        $report['Report']['formname'] = $this->Form->find('all',
                array(
                    'fields'=>array('Form.name'),
                    'conditions'=>array('Form.id'=>$report['Report']['form_id'])));
    endforeach;

    $this->set('allreports', $allreports);
}

Я использовал foreach, чтобы найти соответствующее имя формы из таблицы форм ..

по моему reports.ctp

я хочу, чтобы заголовок отчета и имя формы соответствовали друг другу, например

Report1 - Form name - Form1

Report2 - Form name - Form2

Report3 - Form name - Form1

я пробовал выше, используя

          <div> <a href="#">
                            Reportname:    <?php echo $report['Report']['title'];?>
       </a>
       <a href="#">   Form name <?php echo $report['Report']['formname'];?></a>
         </div>

Но я получаю как массив для

Report1 - Form name - Array

Report2 - Form name - Array

Report3 - Form name - Array

как это сделать ?? пожалуйста, предложите мне ..

1 Ответ

0 голосов
/ 11 августа 2011

$report['Report']['formname'] = $this->Form->find(...) вернет массив. Вот почему он говорит «Массив».

Если вы собираетесь продолжить с логикой, с которой вы работаете ... попробуйте что-то более похожее на ...

foreach($allreports as & $report):
    $temp = $this->Form->read('name',$report['Report']['form_id']);

    $report['Report']['formname']=$temp['Form']['name']
endforeach;

Но да ... вы также можете пойти по пути использования встроенных в CakePHP функций , таких как deceze Был бы более чистый способ сделать это наверняка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...