2016-04-15 6 views
0

Я изучаю Kohana 3.3, используя очень простые и основные примеры из Интернета.Kohana 3.3 view foreach not output array

Мой контроллер:

класс Controller_Index простирается Controller_Template {

public $template='v_index'; 

public function action_index() 
{ 

    $this->template->title='Online store'; 
    $this->template->content='Homepage'; 
} 

public function action_catalog() 
{ 
    $title='Products catalog'; 
    $products = array(
     'Product 1'=>100, 
     'Product 2'=>200, 
    ); 

    $this->template->title='Online products store'; 

    $this->template->content=View::factory('v_catalog') 
     ->bind('products',$products) 
     ->bind('product',$product) 
     ->bind('cost',$cost) 
     ->bind('title',$title); 
} 

}

Мой взгляд v_index.php

<h1><?=$title;?></h1> 
<hr> 
<p><?=$content;?></p> 

Мой взгляд v_catalog.php:

<h2><?=$title?></h2> 

<? foreach ($products as $product=>$cost): ?> 
    <p><?=$product?><strong><?=$cost?></strong></p> 
<? endforeach; ?> 

Когда я иду на http://localhost/kohana/index/catalog, браузер выводит два заголовка: Интернет-магазин и каталог продуктов. Но в месте, где расположен круг foreach, выходы

$cost): ?> 

Что я делаю неправильно? Не могу ли я пройти через этот массив? Или, может быть, мой синтаксис неверен? Буду признателен за помощь в моей ошибке.

ответ

1

Это потому, что short_open_tag опция в PHP отключена. Here У вас есть информация по включению этих параметров. После этого вы можете использовать:

<? ?> 
0

кажется, что в этом коде лучше использовать весь синтаксис

<?php ?> 

Вместо

<? ?> 

Я попытался изменить код:

<?php foreach ($products as $product=>$cost): ?> 
    <p><?=$product?><strong><?=$cost?></strong></p> 
<?php endforeach; ?> 

И теперь это работает просто отлично.

Смежные вопросы