将值从模型传递到Kohana 3中的视图

时间:2011-07-20 14:01:48

标签: php kohana-3

我有一个模型从我的数据库中提取一个我希望能够在我的视图中显示的列表。

该模型如下所示:

Class Model_services extends Model
{
    public function get_services_list() {
    $result = DB::select('*')->from('services')
            ->execute()
            ->as_array();
            return $result;
    }
}

我的控制器看起来像这样:

public function action_index()
{
    $this->template->title    = "services";
    $this->template->header   = View::factory('header'); 
    $services                 = Model::factory('services');
    $this->template->content  = View::factory('services')
                                      ->bind('result',$result)
    $this->template->footer   = View::factory('footer');         
 }

如何在视图中渲染模型中的变量?

2 个答案:

答案 0 :(得分:2)

您实际上没有调用模型方法或将变量从控制器类传递给视图。

改变这个:

$services = Model::factory('services');
$this->template->content = View::factory('services')
                                  ->bind('result',$result);

对此:

$services = Model::factory('services')->get_services_list();
$this->template->content = View::factory('services')
                                  ->bind('result', $services);

这里的变化是:

  • 调用用于从数据库中提取相关行的方法。
  • 使用$services变量并将其绑定到您将在视图中使用的$result

在您的视图中,您可以在引用$result变量时提取值。

要查看您从模型中获得的内容,请在您的视图中对此进行测试:

echo Debug::vars($result);

答案 1 :(得分:0)

services.php 中,使用以下代码;)

foreach($result as $item) {
    echo Debug::vars($item);
    // print_r($item); //alternatively you can try this also, if Debug::vars() causes pain
}