Форум программистов, компьютерный форум, киберфорум
PHP: ООП
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 31.07.2012
Сообщений: 13

Цикл в виде (kohana)

31.07.2012, 08:48. Показов 2160. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите разобраться где ошибка.
Задача вывести из базы данные и через контроллер передать в вид (делаю на фреймворке kohana). Мой код:

Модель:

PHP
1
2
3
4
5
6
7
8
9
10
class Model_Cat extends Model
{
     public function get_all()
    {
    $query = DB::query(Database::SELECT, 'SELECT * FROM category')
    ->execute();
        
    }
        
}
Теперь контроллер:
PHP
1
2
3
4
5
6
7
8
9
10
public function action_index()
    {
    $category = array();
    $cat1 = View::factory('category_view')
    ->bind('category', $category);
    
    $category = Model::factory('Cat')->get_all();
    $this->template->content = $cat1;
    
    }
Теперь вид :
PHP
1
2
3
4
<h2>Категории товаров</h2>
<?php foreach ($category as $categ): ?>
<p>№<?php echo $categ['id'];?></p> <p><?php echo $categ['name'];?></a></p>
<?php endforeach; ?>
В результате выдает ошибку :ErrorException [ Warning ]: Invalid argument supplied for foreach().

Перерыл документацию, вроде все правильно написал. Где может быть ошибка? Заранее благодарен
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.07.2012, 08:48
Ответы с готовыми решениями:

Kohana
Всех с Наступающим! =) Кто нибудь знаком с фреймворком Kohana?

Представить цикл в математическом виде
подскажите, здесь же есть ошибка? x=0; for(j=1; j&lt;=n; j++) x=x+2; x=2*x; это надо представить в математическом виде. ...

Как цикл переписать в виде суммы
Как вот этот цикл переписать в виде суммы (значок снизу), нужна просто формула

5
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
31.07.2012, 09:27
вы foreach неправильно используете
http://www.php.net/manual/ru/c... oreach.php
0
 Аватар для Василий Макогон
270 / 226 / 11
Регистрация: 20.04.2012
Сообщений: 817
31.07.2012, 10:15
$category не является массивом
0
0 / 0 / 0
Регистрация: 31.07.2012
Сообщений: 13
31.07.2012, 13:58  [ТС]
Цитата Сообщение от Василий Макогон Посмотреть сообщение
$category не является массивом
Изменил модель:
PHP
1
2
3
4
5
$query = DB::query(Database::SELECT, 'SELECT * FROM category')
    ->execute()
    ->as_array();
        
    }
а в контроллере забрал
PHP
1
$category = array();
По идеи значение переменной $category должно быть массивом, но выдает ту же ошибку. Честно говоря теряюсь

Добавлено через 2 минуты
Цитата Сообщение от KOPOJI Посмотреть сообщение
вы foreach неправильно используете
http://www.php.net/manual/ru/c... oreach.php
можно подробнее
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
31.07.2012, 14:24
самое начало по ссылке
1. Конструкция foreach предоставляет простой способ перебора массивов. Foreach работает только с массивами и объектами, и будет генерировать ошибку при попытке использования с переменными других типов или неинициализированными переменными. Существует два вида синтаксиса:

foreach (array_expression as $value)
statement
foreach (array_expression as $key => $value)
statement
Первый цикл перебирает массив, задаваемый с помощью array_expression. На каждой итерации значение текущего элемента присваивается переменной $value и внутренний указатель массива увеличивается на единицу (таким образом, на следующей итерации цикла работа будет происходить со следующим элементом).
Добавлено через 4 минуты
т.е. вот это
Цитата Сообщение от andrew123 Посмотреть сообщение
echo $categ['id'];
не сработает. сработает только числовое значение, т.е. к примеру $categ[0] выведет первый символ первого элемента при первой итерации, затем первый символ второго элемента при второй итерации, и т.д.
это тоже самое что просто
PHP
1
2
3
$cat = "123456";
echo $cat[0]; // выведет 1
echo $cat[3]; // выведет 4
Добавлено через 3 минуты
чтобы вывести эти элементы вам нужно тогда как то так
PHP
1
2
3
4
foreach($category as $key=>$value) { //я точно не знаю ключ или значение у вас такое, я сделаю по ключу
if($key=='id') { echo $value; }
if($key=='name') { echo $value; }
}
Добавлено через 1 минуту
и кстати, да - $category не массив и не объект
1
0 / 0 / 0
Регистрация: 31.07.2012
Сообщений: 13
31.07.2012, 16:19  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
самое начало по ссылке


Добавлено через 4 минуты
т.е. вот это
не сработает. сработает только числовое значение, т.е. к примеру $categ[0] выведет первый символ первого элемента при первой итерации, затем первый символ второго элемента при второй итерации, и т.д.
это тоже самое что просто
PHP
1
2
3
$cat = "123456";
echo $cat[0]; // выведет 1
echo $cat[3]; // выведет 4
Добавлено через 3 минуты
чтобы вывести эти элементы вам нужно тогда как то так
PHP
1
2
3
4
foreach($category as $key=>$value) { //я точно не знаю ключ или значение у вас такое, я сделаю по ключу
if($key=='id') { echo $value; }
if($key=='name') { echo $value; }
}
Добавлено через 1 минуту
и кстати, да - $category не массив и не объект
Спасибо, вы правы на 100%.

Добавлено через 1 час 6 минут
Это не в продолжения темы, но пример кода из официального мануала по кохана

PHP
1
2
3
4
5
6
$results = DB::select('id', 'email')->from('users')->execute();
$users = $results->as_array();
foreach($users as $user)
{
    echo 'User ID: '.$user['id'];
    echo 'User Email: '.$user['email'];
Добавлено через 2 минуты
А вот тот же цикл только ключ значение :

PHP
1
2
3
4
5
6
7
$results = DB::select('id', 'email')->from('users')->execute();
$users = $results->as_array('id');
foreach($users as $id => $user)
{
    echo 'User ID: '.$id;
    echo 'User Email: '.$user['email'];
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.07.2012, 16:19
Помогаю со студенческими работами здесь

Создать программу по всем 3 видам циклов...цикл с параметром,цикл с условием,цикл,и цикл с предусловием...
Найти сумму чисел 1 в квадрате до 10 c квадрате...операцию возведению в степень не использовать учесть особенности получения квадратного...

Вложенный цикл. Представление числа в виде суммы
В общем, задано натуральное число N. Нужно составить программу, представляющую это число в виде чисел Фибоначчи, а так же определяющую...

Цикл: вывести в виде таблице значения заданной функции
Не могу понять, что требуется в задании. **Нужно вывести таблицу функции, для этого я начал использовать вложенные циклы #define...

Цикл: Написать программу, которая выводит фигуру в виде пирамиды
Здравствуйте. Я начинающий программист. Учусь по книге Стивена Прата. Дошел до циклов и не могу решить одну задачку, очень надеюсь, что вы...

Цикл: Вывести на экран числа в виде таблицы заданного формата...
Вывести на экран числа в виде следующей таблицы: 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru