2011-07-20 1 views
0

У меня есть модель, которая извлекает из моей базы данных список, который я хочу показать на моем представлении.Передача значения от модели к виду в 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');   
} 

Как вынести на вид переменных из модели?

ответ

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 
} 
+0

благодарит Kowser за быстрый ответ, я использую контроллер шаблона и теперь его дает мне эту ошибку «ErrorException [2]: htmlspecialchars() [function.htmlspecialchars]: Неверная многобайтовая последовательность в аргументе ~ SYSPATH \ classes \ kohana \ debug.php [311] "Я все еще не знаю, что я делаю неправильно – user731144

+0

по моему опыту, вещь, которую я могу понять $ item содержит что-то, имеющее данные в Юникоде, тем самым делая данные юникода в виде многобайтовой последовательности. Вы можете попробовать использовать print_r ($ item) вместо Debug :: vars(); – Kowser

+0

как вы, это просто нуль, лучше изучить в вашей модели. По крайней мере, это не должно быть нулевым, это то, что я понимаю. – Kowser

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