簡體   English   中英

將變量從控制器傳遞到視圖

[英]Passing variables from controller to views

我正在與kostache一起使用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 />

當我運行代碼時,沒有任何內容傳遞給模板文件。 那么如何從控制器=>視圖=>模板傳遞它呢?

您正在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
    );
}

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM