Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
266 / 81 / 18
Регистрация: 05.04.2018
Сообщений: 1,102
Записей в блоге: 1
1

Контроллер не видит метод Модели

28.06.2019, 11:19. Показов 1912. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет. ошибка в этой строке $products = Model::factory('Catalog')->all_products; Почему не видит all_products?
Контроллер:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Controller_Index extends Controller_Template
{
    public $template = 'v_index';
 
    public function action_index()
    {
        $this->template->title = 'Интерент-магазин';
        $this->template->content = 'Главная страница';
 
    }
 
    public function action_catalog()
    {
        $products = Model::factory('Catalog')->all_products;
 
        $this->template->title = 'Интерент-магазин';
        $this->template->content = View::factory('v_catalog', array(
            'products' => $products,
        ));
    }
}
Модель:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Model_Catalog extends Model
{
     public function all_products()
     {
         $productsArray = array(
             'Товар 1' => 100,
             'Товар 2' => 200,
             'Товар 3' => 300,
             'Товар 4' => 444.1,
         );
 
         return $productsArray;
     }
 
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.06.2019, 11:19
Ответы с готовыми решениями:

Передача модели в контроллер
Добрый день. Подскажите, пожалуйста, никак не могу в толк взять. У меня есть некоторая...

Передача модели с вьювера в контроллер
Здравствуйте. столкнулся с проблемой передачи метода с вьюхи в контроллер. В примерах все пишут...

Передача данных из модели в контроллер
Добрый день. Разбираюсь с MVC вторую неделю, поэтому заранее прошу прощения, если мой вопрос...

Передача в контроллер сложной модели
Добрый день, на странице имеются несколько текстбоксов и их данными нужно заполнить таблицу, как...

4
Эксперт PHP
3877 / 3218 / 1350
Регистрация: 01.08.2012
Сообщений: 10,859
28.06.2019, 11:28 2
Цитата Сообщение от Джон Кофи Посмотреть сообщение
Model::factory('Catalog')
Что возвращает этот метод? Если объект, то какого класса? Проверять через var_dump.

Цитата Сообщение от Джон Кофи Посмотреть сообщение
ошибка в этой строке
Текст ошибки?
0
266 / 81 / 18
Регистрация: 05.04.2018
Сообщений: 1,102
Записей в блоге: 1
28.06.2019, 11:36  [ТС] 3
Цитата Сообщение от Jodah Посмотреть сообщение
Текст ошибки?
ErrorException [ Notice ]: Undefined property: Model_Catalog::$all_products
Цитата Сообщение от Jodah Посмотреть сообщение
Что возвращает этот метод? Если объект, то какого класса?
дак Catalog это и есть класс Модели. Model::factory('Catalog') в круглых скобках, в одинарных кавычках помещаем наш класс, а после скобок уже можно вызвать метод этого класса, так?
PHP
1
$products = Model::factory('Catalog')->all_products;
ПС: фрейм использую Kohana

Добавлено через 2 минуты
Цитата Сообщение от Jodah Посмотреть сообщение
Что возвращает этот метод?
массив же.
Еще раз класс модели:
Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Model_Catalog extends Model
{
     public function all_products()
     {
         $productsArray = array(
             'Товар 1' => 100,
             'Товар 2' => 200,
             'Товар 3' => 300,
             'Товар 4' => 444.1,
         );
 
         return $productsArray;
     }
 
}


Добавлено через 1 минуту
а потом в контроллере использую этот метод all_products.
Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Controller_Index extends Controller_Template
{
    public $template = 'v_index';
 
    public function action_index()
    {
        $this->template->title = 'Интернет-магазин';
        $this->template->content = 'Главная страница';
 
    }
 
    public function action_catalog()
    {
        $products = Model::factory('Catalog')->all_products;
 
        $this->template->title = 'Интерент-магазин';
        $this->template->content = View::factory('v_catalog', array(
            'products' => $products,
        ));
    }
}
0
Эксперт PHP
3877 / 3218 / 1350
Регистрация: 01.08.2012
Сообщений: 10,859
28.06.2019, 11:41 4
Лучший ответ Сообщение было отмечено Джон Кофи как решение

Решение

Цитата Сообщение от Джон Кофи Посмотреть сообщение
Undefined property
property = свойство. Вы обращаетесь к свойству, а нужно к методу. Забыли скобки, короче. ->all_products()
1
266 / 81 / 18
Регистрация: 05.04.2018
Сообщений: 1,102
Записей в блоге: 1
28.06.2019, 11:44  [ТС] 5
Цитата Сообщение от Jodah Посмотреть сообщение
Забыли скобки, короче.
и так всю жизнь. Сегодня 20 минут искал ключи от машины, оказалось, я их уже вставил в зажигание. Пятница
0
28.06.2019, 11:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.06.2019, 11:44
Помогаю со студенческими работами здесь

Сложности в передаче модели в контроллер
Доброго времени суток уважаемые форумчане! Извиняюсь за ранее за возможно глупый вопрос, но...

Передача в контроллер модели определенного класса
Создал две модели: public class Note:Entity { public virtual...

POST не возвращает данные из модели в контроллер
По примеру из книги Сандерсона делаю собственные формы, но наткнулся на проблему - в моей...

Как возвратить таблицу с данными из модели MVC в Контроллер?
Всем доброго времени суток, сегодня написал небольшое приложение на MVC, и потребовался вывод...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru