nestling Опубліковано: 10 листопада 2015 Share Опубліковано: 10 листопада 2015 (змінено) Как вызвать соседнею функцию в контролере? предположим такую структуру: class { function bar() {...} function index() { $data['bizbi'] = ????? } } Пробовал: $this->bar(); // null $this->$bar(); // ошибка $bar(); // ошибка $this->load->$bar(); // ошибка не пашет =((( Змінено 10 листопада 2015 користувачем nestling Надіслати Поділитися на інших сайтах More sharing options...
rb2 Опубліковано: 10 листопада 2015 Share Опубліковано: 10 листопада 2015 class { function bar() { return "строка бибзи бизби"; } function index() { $data['bizbi'] = $this->bar(); } } Надіслати Поділитися на інших сайтах More sharing options...
savage4pro Опубліковано: 10 листопада 2015 Share Опубліковано: 10 листопада 2015 вариант №1, а почему null - ищите ответ в другом месте кода Надіслати Поділитися на інших сайтах More sharing options... nestling Опубліковано: 10 листопада 2015 Автор Share Опубліковано: 10 листопада 2015 спасибо, хм... дуем думать. А если на пример в модели я буду использовать print_r или echo я смогу его позже увидеть? Просто там идет запрос в таблицу, а в ней может быть пусто, тогда выводить false, я эту проверку делаю в контролере после вызова модели. По этому может быть? Надіслати Поділитися на інших сайтах More sharing options... savage4pro Опубліковано: 10 листопада 2015 Share Опубліковано: 10 листопада 2015 огласите весь список, пожалуйста (ц) в большинстве случаев вывод увидите Надіслати Поділитися на інших сайтах More sharing options... nestling Опубліковано: 10 листопада 2015 Автор Share Опубліковано: 10 листопада 2015 Эм.. весь список это? Надіслати Поділитися на інших сайтах More sharing options... savage4pro Опубліковано: 10 листопада 2015 Share Опубліковано: 10 листопада 2015 ну весь кусок кода, который вас смущает :) как выполняете запрос, что отдаете методом модели, что нужно контроллеру пока что может быть все что угодно, от абсолютно верного, но почему-то удивляющего вас результата, до подавляемых ошибок Надіслати Поділитися на інших сайтах More sharing options... nestling Опубліковано: 10 листопада 2015 Автор Share Опубліковано: 10 листопада 2015 (змінено) А.. class ControllerModuleLena extends Controller { // проверка на созданные профили public function checkProfile() { $this->load->model('lena/main'); $result = $this->model_lena_main->getProfiles(); if($result) { //тут в будущем поиск из полученных значений одно с активацией, если же нет то $result = true; } else { $result = false; } $this->response->setOutput(json_encode($result)); } public function index() { ... $data['activeProfile'] = $this->checkProfile(); // поч null ... } } class main extends Model { public function getProfiles() { $result = $this->db->query("SELECT id, name, active FROM `" . DB_PREFIX . "lena_profiles`"); return $result->rows; } В БД таблица есть, пустая. Змінено 10 листопада 2015 користувачем nestling Надіслати Поділитися на інших сайтах More sharing options... nestling Опубліковано: 11 листопада 2015 Автор Share Опубліковано: 11 листопада 2015 есть предположение, работать с данными еще в модели, наверное нул из-за пустого ответа, при возрващении return $result->rows; Надіслати Поділитися на інших сайтах More sharing options... savage4pro Опубліковано: 11 листопада 2015 Share Опубліковано: 11 листопада 2015 так $this->response->setOutput('something'); устанавливает выдачу, отображение которой происходит в конце index.php, при этом вызывается через echo установленного значения поэтому ваш метод public function checkProfile() { при вызове будет выводить результат, если далее в скрипте не будет вызван еще один $this->response->setOutput, который установит другое значение для конечного вывода если же setOutput будет вызван, то ваш метод отработает вообще впустую если вы хотите вернуть результат выполнения функции/метода, используйте вместо $this->response->setOutput(json_encode($result)); обычный return json_encode($result); а на данный момент ваш метод ничего не возвращает, работает как процедура, и поэтому присваивание $data['activeProfile'] = $this->checkProfile(); не сделает ничего, и переменной $data['activeProfile'] просто не существует Надіслати Поділитися на інших сайтах More sharing options... nestling Опубліковано: 11 листопада 2015 Автор Share Опубліковано: 11 листопада 2015 (змінено) Ну да) Спасибо большое убрал $this->response->setOutput(json_encode($result)); поставил в условие return json_encode($result); Но вот еще вопрос, если я буду вызывать функцию в приложении и получать ответ мне нужно будет в json, аджаксом, удаление $this->response->setOutput не повлияет? Змінено 11 листопада 2015 користувачем nestling Надіслати Поділитися на інших сайтах More sharing options... savage4pro Опубліковано: 11 листопада 2015 Share Опубліковано: 11 листопада 2015 повлияетнапишите условие в методе if (isset($_POST['json']) && $_POST['json']==1) { $this->response->setOutput(json_encode($result)); } else { return json_encode($result); } и при вызове аяксом добавьте этот параметр со значением в пост данные, ну или в строку, тогда и проверять надо $_GET Надіслати Поділитися на інших сайтах More sharing options... nestling Опубліковано: 11 листопада 2015 Автор Share Опубліковано: 11 листопада 2015 То, что надо. спасибо. Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам [Решено] вызываем функцию Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
nestling Опубліковано: 10 листопада 2015 Автор Share Опубліковано: 10 листопада 2015 спасибо, хм... дуем думать. А если на пример в модели я буду использовать print_r или echo я смогу его позже увидеть? Просто там идет запрос в таблицу, а в ней может быть пусто, тогда выводить false, я эту проверку делаю в контролере после вызова модели. По этому может быть? Надіслати Поділитися на інших сайтах More sharing options...
savage4pro Опубліковано: 10 листопада 2015 Share Опубліковано: 10 листопада 2015 огласите весь список, пожалуйста (ц) в большинстве случаев вывод увидите Надіслати Поділитися на інших сайтах More sharing options... nestling Опубліковано: 10 листопада 2015 Автор Share Опубліковано: 10 листопада 2015 Эм.. весь список это? Надіслати Поділитися на інших сайтах More sharing options... savage4pro Опубліковано: 10 листопада 2015 Share Опубліковано: 10 листопада 2015 ну весь кусок кода, который вас смущает :) как выполняете запрос, что отдаете методом модели, что нужно контроллеру пока что может быть все что угодно, от абсолютно верного, но почему-то удивляющего вас результата, до подавляемых ошибок Надіслати Поділитися на інших сайтах More sharing options... nestling Опубліковано: 10 листопада 2015 Автор Share Опубліковано: 10 листопада 2015 (змінено) А.. class ControllerModuleLena extends Controller { // проверка на созданные профили public function checkProfile() { $this->load->model('lena/main'); $result = $this->model_lena_main->getProfiles(); if($result) { //тут в будущем поиск из полученных значений одно с активацией, если же нет то $result = true; } else { $result = false; } $this->response->setOutput(json_encode($result)); } public function index() { ... $data['activeProfile'] = $this->checkProfile(); // поч null ... } } class main extends Model { public function getProfiles() { $result = $this->db->query("SELECT id, name, active FROM `" . DB_PREFIX . "lena_profiles`"); return $result->rows; } В БД таблица есть, пустая. Змінено 10 листопада 2015 користувачем nestling Надіслати Поділитися на інших сайтах More sharing options... nestling Опубліковано: 11 листопада 2015 Автор Share Опубліковано: 11 листопада 2015 есть предположение, работать с данными еще в модели, наверное нул из-за пустого ответа, при возрващении return $result->rows; Надіслати Поділитися на інших сайтах More sharing options... savage4pro Опубліковано: 11 листопада 2015 Share Опубліковано: 11 листопада 2015 так $this->response->setOutput('something'); устанавливает выдачу, отображение которой происходит в конце index.php, при этом вызывается через echo установленного значения поэтому ваш метод public function checkProfile() { при вызове будет выводить результат, если далее в скрипте не будет вызван еще один $this->response->setOutput, который установит другое значение для конечного вывода если же setOutput будет вызван, то ваш метод отработает вообще впустую если вы хотите вернуть результат выполнения функции/метода, используйте вместо $this->response->setOutput(json_encode($result)); обычный return json_encode($result); а на данный момент ваш метод ничего не возвращает, работает как процедура, и поэтому присваивание $data['activeProfile'] = $this->checkProfile(); не сделает ничего, и переменной $data['activeProfile'] просто не существует Надіслати Поділитися на інших сайтах More sharing options... nestling Опубліковано: 11 листопада 2015 Автор Share Опубліковано: 11 листопада 2015 (змінено) Ну да) Спасибо большое убрал $this->response->setOutput(json_encode($result)); поставил в условие return json_encode($result); Но вот еще вопрос, если я буду вызывать функцию в приложении и получать ответ мне нужно будет в json, аджаксом, удаление $this->response->setOutput не повлияет? Змінено 11 листопада 2015 користувачем nestling Надіслати Поділитися на інших сайтах More sharing options... savage4pro Опубліковано: 11 листопада 2015 Share Опубліковано: 11 листопада 2015 повлияетнапишите условие в методе if (isset($_POST['json']) && $_POST['json']==1) { $this->response->setOutput(json_encode($result)); } else { return json_encode($result); } и при вызове аяксом добавьте этот параметр со значением в пост данные, ну или в строку, тогда и проверять надо $_GET Надіслати Поділитися на інших сайтах More sharing options... nestling Опубліковано: 11 листопада 2015 Автор Share Опубліковано: 11 листопада 2015 То, что надо. спасибо. Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам [Решено] вызываем функцию Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich
nestling Опубліковано: 10 листопада 2015 Автор Share Опубліковано: 10 листопада 2015 Эм.. весь список это? Надіслати Поділитися на інших сайтах More sharing options...
savage4pro Опубліковано: 10 листопада 2015 Share Опубліковано: 10 листопада 2015 ну весь кусок кода, который вас смущает :) как выполняете запрос, что отдаете методом модели, что нужно контроллеру пока что может быть все что угодно, от абсолютно верного, но почему-то удивляющего вас результата, до подавляемых ошибок Надіслати Поділитися на інших сайтах More sharing options... nestling Опубліковано: 10 листопада 2015 Автор Share Опубліковано: 10 листопада 2015 (змінено) А.. class ControllerModuleLena extends Controller { // проверка на созданные профили public function checkProfile() { $this->load->model('lena/main'); $result = $this->model_lena_main->getProfiles(); if($result) { //тут в будущем поиск из полученных значений одно с активацией, если же нет то $result = true; } else { $result = false; } $this->response->setOutput(json_encode($result)); } public function index() { ... $data['activeProfile'] = $this->checkProfile(); // поч null ... } } class main extends Model { public function getProfiles() { $result = $this->db->query("SELECT id, name, active FROM `" . DB_PREFIX . "lena_profiles`"); return $result->rows; } В БД таблица есть, пустая. Змінено 10 листопада 2015 користувачем nestling Надіслати Поділитися на інших сайтах More sharing options... nestling Опубліковано: 11 листопада 2015 Автор Share Опубліковано: 11 листопада 2015 есть предположение, работать с данными еще в модели, наверное нул из-за пустого ответа, при возрващении return $result->rows; Надіслати Поділитися на інших сайтах More sharing options... savage4pro Опубліковано: 11 листопада 2015 Share Опубліковано: 11 листопада 2015 так $this->response->setOutput('something'); устанавливает выдачу, отображение которой происходит в конце index.php, при этом вызывается через echo установленного значения поэтому ваш метод public function checkProfile() { при вызове будет выводить результат, если далее в скрипте не будет вызван еще один $this->response->setOutput, который установит другое значение для конечного вывода если же setOutput будет вызван, то ваш метод отработает вообще впустую если вы хотите вернуть результат выполнения функции/метода, используйте вместо $this->response->setOutput(json_encode($result)); обычный return json_encode($result); а на данный момент ваш метод ничего не возвращает, работает как процедура, и поэтому присваивание $data['activeProfile'] = $this->checkProfile(); не сделает ничего, и переменной $data['activeProfile'] просто не существует Надіслати Поділитися на інших сайтах More sharing options... nestling Опубліковано: 11 листопада 2015 Автор Share Опубліковано: 11 листопада 2015 (змінено) Ну да) Спасибо большое убрал $this->response->setOutput(json_encode($result)); поставил в условие return json_encode($result); Но вот еще вопрос, если я буду вызывать функцию в приложении и получать ответ мне нужно будет в json, аджаксом, удаление $this->response->setOutput не повлияет? Змінено 11 листопада 2015 користувачем nestling Надіслати Поділитися на інших сайтах More sharing options... savage4pro Опубліковано: 11 листопада 2015 Share Опубліковано: 11 листопада 2015 повлияетнапишите условие в методе if (isset($_POST['json']) && $_POST['json']==1) { $this->response->setOutput(json_encode($result)); } else { return json_encode($result); } и при вызове аяксом добавьте этот параметр со значением в пост данные, ну или в строку, тогда и проверять надо $_GET Надіслати Поділитися на інших сайтах More sharing options... nestling Опубліковано: 11 листопада 2015 Автор Share Опубліковано: 11 листопада 2015 То, что надо. спасибо. Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам [Решено] вызываем функцию
nestling Опубліковано: 10 листопада 2015 Автор Share Опубліковано: 10 листопада 2015 (змінено) А.. class ControllerModuleLena extends Controller { // проверка на созданные профили public function checkProfile() { $this->load->model('lena/main'); $result = $this->model_lena_main->getProfiles(); if($result) { //тут в будущем поиск из полученных значений одно с активацией, если же нет то $result = true; } else { $result = false; } $this->response->setOutput(json_encode($result)); } public function index() { ... $data['activeProfile'] = $this->checkProfile(); // поч null ... } } class main extends Model { public function getProfiles() { $result = $this->db->query("SELECT id, name, active FROM `" . DB_PREFIX . "lena_profiles`"); return $result->rows; } В БД таблица есть, пустая. Змінено 10 листопада 2015 користувачем nestling Надіслати Поділитися на інших сайтах More sharing options...
nestling Опубліковано: 11 листопада 2015 Автор Share Опубліковано: 11 листопада 2015 есть предположение, работать с данными еще в модели, наверное нул из-за пустого ответа, при возрващении return $result->rows; Надіслати Поділитися на інших сайтах More sharing options...
savage4pro Опубліковано: 11 листопада 2015 Share Опубліковано: 11 листопада 2015 так $this->response->setOutput('something'); устанавливает выдачу, отображение которой происходит в конце index.php, при этом вызывается через echo установленного значения поэтому ваш метод public function checkProfile() { при вызове будет выводить результат, если далее в скрипте не будет вызван еще один $this->response->setOutput, который установит другое значение для конечного вывода если же setOutput будет вызван, то ваш метод отработает вообще впустую если вы хотите вернуть результат выполнения функции/метода, используйте вместо $this->response->setOutput(json_encode($result)); обычный return json_encode($result); а на данный момент ваш метод ничего не возвращает, работает как процедура, и поэтому присваивание $data['activeProfile'] = $this->checkProfile(); не сделает ничего, и переменной $data['activeProfile'] просто не существует Надіслати Поділитися на інших сайтах More sharing options... nestling Опубліковано: 11 листопада 2015 Автор Share Опубліковано: 11 листопада 2015 (змінено) Ну да) Спасибо большое убрал $this->response->setOutput(json_encode($result)); поставил в условие return json_encode($result); Но вот еще вопрос, если я буду вызывать функцию в приложении и получать ответ мне нужно будет в json, аджаксом, удаление $this->response->setOutput не повлияет? Змінено 11 листопада 2015 користувачем nestling Надіслати Поділитися на інших сайтах More sharing options... savage4pro Опубліковано: 11 листопада 2015 Share Опубліковано: 11 листопада 2015 повлияетнапишите условие в методе if (isset($_POST['json']) && $_POST['json']==1) { $this->response->setOutput(json_encode($result)); } else { return json_encode($result); } и при вызове аяксом добавьте этот параметр со значением в пост данные, ну или в строку, тогда и проверять надо $_GET Надіслати Поділитися на інших сайтах More sharing options... nestling Опубліковано: 11 листопада 2015 Автор Share Опубліковано: 11 листопада 2015 То, что надо. спасибо. Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
nestling Опубліковано: 11 листопада 2015 Автор Share Опубліковано: 11 листопада 2015 (змінено) Ну да) Спасибо большое убрал $this->response->setOutput(json_encode($result)); поставил в условие return json_encode($result); Но вот еще вопрос, если я буду вызывать функцию в приложении и получать ответ мне нужно будет в json, аджаксом, удаление $this->response->setOutput не повлияет? Змінено 11 листопада 2015 користувачем nestling Надіслати Поділитися на інших сайтах More sharing options...
savage4pro Опубліковано: 11 листопада 2015 Share Опубліковано: 11 листопада 2015 повлияетнапишите условие в методе if (isset($_POST['json']) && $_POST['json']==1) { $this->response->setOutput(json_encode($result)); } else { return json_encode($result); } и при вызове аяксом добавьте этот параметр со значением в пост данные, ну или в строку, тогда и проверять надо $_GET Надіслати Поділитися на інших сайтах More sharing options... nestling Опубліковано: 11 листопада 2015 Автор Share Опубліковано: 11 листопада 2015 То, что надо. спасибо. Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0
nestling Опубліковано: 11 листопада 2015 Автор Share Опубліковано: 11 листопада 2015 То, что надо. спасибо. Надіслати Поділитися на інших сайтах More sharing options...
Recommended Posts