我使用kohana 3.3和kostache。好吧如何将变量从控制器传递到类视图并在胡子文件上使用它?...
这是我的代码。
控制器:
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 =&gt;传递它呢? views =&gt;模板?
答案 0 :(得分: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()方法,但如果您认为这样做,请使用此方法。
查看:强>
class 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
);
}
}