2013-12-09 1 views
0

Я использую kohana 3.3 вместе с костаче. Хорошо, как вы передаете переменную от контроллера к представлениям класса и используете ее в файле усов? ..Передача переменных из контроллера в представления

Вот мой код.

Контроллер:

public function action_update() 
{ 
    $layout = Kostache_Layout::factory(); 

    $content = new View_Pages_Album_Update(); 

    $album = ORM::factory('Album_Information', $this->request->post('id')); 

    $content->albumName = $album->Album_Name; 

    $content->albumArtist = $album->Artist; 

    $this->response->body($layout->render($content)); 
} 

Просмотров

class View_Pages_Album_Update { 

    public $title = 'Update Music'; 

    public function album_edit() 
    { 
     return array(
        array('albumName' => $this->albumName), 
        array('albumArtist' => $this->albumArtist), 
     ); 
    } 
} 

Шаблон

<label>Album Name:</label> 

<input type="text" name="inputAlbumName" value="{{albumName}}" /><br /> 

<label>Artist:</label> 
<input type="text" name="inputArtist" value="{{albumArtist}}" /><br /> 

Когда я запускаю мой код ничего не передается в файл шаблона. Итак, как вы передаете его из шаблона controller => views =>?

ответ

1

Вы устанавливаете значения в объекте Kostache_Layout. Я считаю, что вы должны установить те на View_Pages_Album_Update вместо:

Контроллер:

public function action_update() 
{ 
    $layout = Kostache_Layout::factory(); 
    $content = new View_Pages_Album_Update(); 

    $album = ORM::factory('Album_Information', $this->request->param('id')); 

    $content->albumName = $album->Album_Name; 
    $content->albumArtist = $album->Artist; 

    $this->response->body($layout->render($content)); 
} 

Я не думаю, что вам нужен метод album_edit() для шаблона вы показали, но если вы думаете, что вы делаете , затем используйте это.

Вид:

класс View_Pages_Album_Update {

public $title = 'Update Music'; 

public function album_edit() 
{ 
    return array(
       array('albumName' => $this->albumName), // missing $this 
       array('albumArtist' => $this->albumArtist), // missing $this 
    ); 
} 

}

+0

Так я не установить эти переменные в контроллере? вместо этого установите эти переменные в классе представлений? Это то, что вы имели ввиду? – Defyleiti

+0

Я добавил пример того, что я имею в виду. – Darsstar

+0

Я внес некоторые изменения в код, но все еще переданные значения равны нулю. – Defyleiti