Получить значение в поле зрения - PullRequest
0 голосов
/ 16 февраля 2012

В контроллере я делаю это

<?php

$data = array(
    'color' => 'pink',
    'type' => 'sugar',
    'base_price' => 23.95
);
//make $color, $type, and $base_price 
//available to the view:
$this->set($data);  
?>

И в представлении, которое я прямо называю

<?=$color?>

Но нет ничего, что было бы отражено.Я не прав насчет его использования?

Ответы [ 3 ]

2 голосов
/ 16 февраля 2012

Вы правильно используете $this->set().

Скорее всего, у вас не включены короткие ярлыки PHP ( больше информации ).Это приведет к тому, что PHP выведет весь блок <?=$color?> в виде текста, который будет проанализирован как некорректный HTML-тег и просто проигнорирован.Проверьте исходный HTML-код и посмотрите, что является полным выводом, а не только тем, что отображает ваш браузер.

В качестве меры исправления <?php echo $color; ?> должен работать просто отлично.

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

Вы, ребята, все усложняете> Cakephp означает, что кодирование торта - это не боль, а боль.

<?php
$myarray = array(
    'color' => 'pink',
    'type' => 'sugar',
    'base_price' => 23.95
);
//make $color, $type, and $base_price 
//available to the view:

$this->set('viewdata', $myarray);  
?>

Возьмите переменную из вида вот так

<?php echo $viewdata['color'];

echo $viewdata['type'];


echo $viewdata['base_price'];
?>
0 голосов
/ 16 февраля 2012

Как указал Фаррей, вы неправильно использовали метод set ().Правильный синтаксис следующий:

РЕДАКТИРОВАТЬ: Я неправильно прочитал сообщение Farrays, и вы действительно правильно использовали set (), поскольку он может принять ассоциативный массив в качестве своей первой команды.Возможно, стоит изменить тип переменной на другой, отличный от $ data, и использовать метод set следующим образом:

<?php
$myarray = array(
    'color' => 'pink',
    'type' => 'sugar',
    'base_price' => 23.95
);
//make $color, $type, and $base_price 
//available to the view:
$this->set('myarray', $myarray);  
?>

В качестве альтернативы вы можете использовать сокращенный метод и использовать метод compact ():

<?php
$this->set(compact('myarray'));  
?>

Внутри вашего представления, если вы запускаете pr ($ myarray);Вы должны увидеть ваш массив аккуратно отформатированным рекурсивным способом.Если вы НЕ видите этого, то либо:

  • В вашем файле просмотра есть ошибка, которая перехватывается перед вашей командой pr ()
  • В вашем PHP отключены короткие тегиКонфигурационный файл php.ini
  • В вашем контроллере есть более глубокая проблема

С уважением, Саймон

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