Русскоязычный форум, посвященный фреймворку Kohana

Все о фреймворке Kohana. Обсуждение уроков, документации.
Текущее время: 05 июл 2025, 15:04

Часовой пояс: UTC + 4 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 13 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Invalid argument supplied for foreach()
СообщениеДобавлено: 22 май 2012, 19:04 
Не в сети
Бывалый

Зарегистрирован: 21 май 2012, 20:54
Сообщения: 81
Как правильно написать контролер что-бы вытащить например статьи с базы по категориям у меня так

public function action_cat()
{
$cat = array();
$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 get_cat($id = '')
{
$sql = "SELECT id,title,img FROM ". $this->_tableArticles ." WHERE 'cat' = :id ORDER BY id DESC LIMIT 7";

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

foreach($cat as $art): Видает ошибку

_________________
Меньше кода -> меньше ошибок


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Invalid argument supplied for foreach()
СообщениеДобавлено: 22 май 2012, 21:12 
Не в сети
Новичок

Зарегистрирован: 13 май 2012, 13:16
Сообщения: 29
в конце модели забыли
Код:
return $query


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Invalid argument supplied for foreach()
СообщениеДобавлено: 22 май 2012, 22:04 
Не в сети
Бывалый

Зарегистрирован: 21 май 2012, 20:54
Сообщения: 81
Ошибки уже нет но выводит почему-то пустую страницу

var_dump выводит array(0) { }

_________________
Меньше кода -> меньше ошибок


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Invalid argument supplied for foreach()
СообщениеДобавлено: 22 май 2012, 22:21 
Не в сети
Новичок

Зарегистрирован: 13 май 2012, 13:16
Сообщения: 29
перепишите контроллер
Код:
$content = View::factory('/pages/cat');
$content->cat = Model::factory('categ')->get_cat($id);
$this->template->content = $content;


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Invalid argument supplied for foreach()
СообщениеДобавлено: 22 май 2012, 22:32 
Не в сети
Бывалый

Зарегистрирован: 21 май 2012, 20:54
Сообщения: 81
не помогло также 0 в массиве

пробовал в модели

$result = $query->as_array();

return $result;

тоже не проходит

_________________
Меньше кода -> меньше ошибок


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Invalid argument supplied for foreach()
СообщениеДобавлено: 22 май 2012, 23:14 
Не в сети
Бывалый

Зарегистрирован: 21 май 2012, 20:54
Сообщения: 81
Может это я не все прописал! Так у меня было в процедурном стиле

SELECT * FROM data WHERE cat = $_GET['cat']

а как здесь пишется подобный запрос

_________________
Меньше кода -> меньше ошибок


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Invalid argument supplied for foreach()
СообщениеДобавлено: 23 май 2012, 09:57 
Не в сети
Новичок

Зарегистрирован: 13 май 2012, 13:16
Сообщения: 29
а в переменной $id что-нибудь есть?
переменной _tableArticles не вижу у вас в модели


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Invalid argument supplied for foreach()
СообщениеДобавлено: 23 май 2012, 10:13 
Не в сети
Бывалый

Зарегистрирован: 21 май 2012, 20:54
Сообщения: 81
protected $_tableArticles = 'data'; просто не прописал тогда

$content->cat = Model::factory('categ')->get_cat($id);

когда убрать $id то вывод есть только не по категориям

_________________
Меньше кода -> меньше ошибок


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Invalid argument supplied for foreach()
СообщениеДобавлено: 23 май 2012, 10:19 
Не в сети
Новичок

Зарегистрирован: 13 май 2012, 13:16
Сообщения: 29
значит переменная $id у вас пустая, проверьте через echo
Код:
echo $id = $this->request->param('id');


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Invalid argument supplied for foreach()
СообщениеДобавлено: 23 май 2012, 11:01 
Не в сети
Бывалый

Зарегистрирован: 21 май 2012, 20:54
Сообщения: 81
Проверил выводит цифру номер категории.Вот роут и меню может здесь что-то

Route::set('cat', '<cat>/<id>', array('id' => '[0-9]+'))
->defaults(array(
'controller' => 'categ',
'action' => 'cat',
));

меню выводит нормально
<?php foreach ($menu as $menus): ?>
<li class="last"><a href="<?php echo URL::site('/cat'); ?>/<?=$menus['id']?>"><?=$menus['title']?></a></li>
<?php endforeach;?>

_________________
Меньше кода -> меньше ошибок


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 4 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Все о фреймворке Kohana  | 
Powered by phpBB® Forum Software © phpBB Group