Php 将变量从控制器传递到视图

Php 将变量从控制器传递到视图,php,kohana,kostache,Php,Kohana,Kostache,我正在使用kohana 3.3和kostache。好的,如何将一个变量从控制器传递到类视图,并在一个小胡子文件上使用它 这是我的密码 控制器: public function action_update() { $layout = Kostache_Layout::factory(); $content = new View_Pages_Album_Update(); $album = ORM::factory('Album_Information', $this-&

我正在使用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));
}
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));
}
视图

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=>template传递它呢?

您正在设置Kostache\u布局对象的值。我相信您必须在“查看页面”\u“相册”\u更新中设置这些内容:

控制器:

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));
}
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()方法,但如果您认为需要,请使用此方法

查看:

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));
}
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));
}
类视图\页面\相册\更新{

public $title = 'Update Music';

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

}

所以我不会在控制器中设置这些变量?而是在views类中设置这些变量?这就是你的意思吗?我添加了一个示例来说明我的意思。我对代码做了一些更改,但传递的值仍然为null。