Я изучаю Kohana 3.3 на очень простых и базовых примерах из Интернета.

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

Class 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, браузер выводит два заголовка: Интернет-магазин и каталог продукции ок. Но в том месте, где находится каждый круг, он выводит

 $cost): ?> 

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

0
Ksenia 15 Апр 2016 в 10:34

2 ответа

Лучший ответ

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

<? ?>
1
Community 23 Май 2017 в 12:31

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

 <?php ?>

Вместо того

 <? ?>

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

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

И теперь все работает нормально.

0
Ksenia 15 Апр 2016 в 07:52