Русскоязычный форум, посвященный фреймворку Kohana
http://forum.kohanaframework.su/

Ошибка Undefined variable:
http://forum.kohanaframework.su/viewtopic.php?f=31&t=196
Страница 1 из 2

Автор:  websto [ 23 май 2012, 23:15 ]
Заголовок сообщения:  Ошибка Undefined variable:

В чем здесь может быть проблема вроде рабочий код

public function action_meta()
{

$id = $this->request->param('id');
$content = View::factory('/pages/cat')
->bind('meta', $meta);
$meta = Model::factory('categ')->get_meta();
$this->template->content = $content;

}

а в виде видает ошибку foreach($meta as $metas):

Undefined variable: meta

Автор:  admin [ 23 май 2012, 23:25 ]
Заголовок сообщения:  Re: Ошибка Undefined variable:

Что модель возвращает ?

Автор:  websto [ 23 май 2012, 23:31 ]
Заголовок сообщения:  Re: Ошибка Undefined variable:

protected $_tableArticles = 'data';
protected $_tableArticles1 = 'categories';

public function get_cat($id = '')
{
$sql = "SELECT id,title,img FROM ". $this->_tableArticles ." WHERE cat = :id ORDER BY id DESC LIMIT 14";
$query = DB::query(Database::SELECT, $sql,FALSE)
->param(':id', (int)$id)
->execute();

$result = $query->as_array();
return $result;}

public function get_meta($id = '')
{
$sql = "SELECT * FROM ". $this->_tableArticles1 ." WHERE id = :id";

$query = DB::query(Database::SELECT, $sql)
->param(':id', (int)$id)
->execute();

$result = $query->as_array();


return $result;

}

это модель а это контролер файлы целиком


public function action_cat()
{

$id = $this->request->param('id');
$content = View::factory('/pages/cat')
->bind('cat', $cat);
$cat = Model::factory('categ')->get_cat($id);
$this->template->content = $content;

}

public function action_meta()
{

$id = $this->request->param('id');
$content = View::factory('/pages/cat')
->bind('meta', $meta);
$meta = Model::factory('categ')->get_meta($id);
$this->template->content = $content;

}

}

Автор:  admin [ 23 май 2012, 23:41 ]
Заголовок сообщения:  Re: Ошибка Undefined variable:

А почему вы id не передаете в метод модели ?
Код:
public function get_meta($id = '')

Получается у вас запрос срабатывает
Код:
SELECT * FROM categories WHERE id = '';

И думаю, что ничего не находит. Если вы хотели сделать универсальный метод, который будет находить и все категории и какую-то одну, то тут нужно ставить условие проверки на $id и менять запрос в зависимости от нее.

Автор:  websto [ 23 май 2012, 23:48 ]
Заголовок сообщения:  Re: Ошибка Undefined variable:

А как надо правильно прописать проверку id = $_GET[id]
вот этот момент мне очень не понятен

Автор:  ivank_x [ 24 май 2012, 10:40 ]
Заголовок сообщения:  Re: Ошибка Undefined variable:

Код:
$id = Arr::get($_GET, 'id', '');

Автор:  websto [ 24 май 2012, 13:47 ]
Заголовок сообщения:  Re: Ошибка Undefined variable:

Спасибо за разяснение с $id но у меня все равно не получается сделать

Даже когда в модели убрать проверки а просто вытащить с базы все записи

public function get_meta()
{
$sql = "SELECT * FROM ". $this->_tableArticles1;
return DB::query(Database::SELECT, $sql)
->execute();
}

На выходе все равно получается foreach($meta as $metas): Undefined variable: meta
{PHP internal call} » Kohana_Controller_Template->after()

Это я хочу мета данные передать получается в одной модели делаю выборку с двух таблиц.Потом в контролере функции обработки одинаковые но...Может это как-то по другому реализуется

Автор:  websto [ 24 май 2012, 14:26 ]
Заголовок сообщения:  Re: Ошибка Undefined variable:

Проблема в этом контролере вернее в function action_meta
из нее вообще ничего не выводится пробовал $this->template->title = 'hello';

class Controller_Categ extends Controller_Template {

public function action_cat()
{

$id = $this->request->param('id');
$content = View::factory('/pages/cat')
->bind('cat', $cat);
$cat = Model::factory('categ')->get_cat($id);
$this->template->title = 'hello';
$this->template->content = $content;

}

public function action_meta()
{

$id = $this->request->param('id');
$content = View::factory('/pages/cat')
->bind('meta', $meta);
$meta = Model::factory('categ')->get_meta($id);
$this->template->title = 'hello';

$this->template->content = $content;

}

}

Автор:  ivank_x [ 24 май 2012, 16:47 ]
Заголовок сообщения:  Re: Ошибка Undefined variable:

попробуйте так
Код:
public function action_meta()
{

//$id = $this->request->param('id');
$content = View::factory('/pages/cat');
//$meta = Model::factory('categ')->get_meta($id);
$this->template->title = 'hello';

$this->template->content = $content;

}

в виде соответственно echo $title;
в адресной строке /categ/meta
должны получить hello

Автор:  websto [ 24 май 2012, 17:38 ]
Заголовок сообщения:  Re: Ошибка Undefined variable:

Да вывелось hello.Это значит что ошибка в модели?

Страница 1 из 2 Часовой пояс: UTC + 4 часа [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/