0

我将 kohana 3.3 与 kostache 一起使用。好的,您如何将变量从控制器传递到类视图并在 mustache 文件上使用它?..

这是我的代码。

控制器:

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 />

当我运行我的代码时,没有任何东西传递给模板文件。那么如何从控制器 => 视图 => 模板传递它呢?

4

1 回答 1

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
    );
}

}

于 2013-12-09T11:33:07.193 回答