Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Вызов функции контроллера


Recommended Posts

Добрый вечер, есть элемент onclick="func('dogs', '735');

Есть контроллер information/info...

 

с функцией dogs, cats и тд...

 

Первый параметр в onclick передает тип который нужно отобразить в данном случае dogs, второй id. Вопрос заключается в том как правильно поступить для вызова определенной функции в контроллере связаной с типом данных (dogs, cat и тд.).  Мои мысли в функции index information/info ловить $this->request->post['type'] и в зависимости от него перенаправлять на одноименную функцию в том же контроллере, но как ?

 

Надіслати
Поділитися на інших сайтах

35 минут назад, iPython сказал:

Начнём с того, что тут ООП MVC, соответственно у контроллера нет функций, есть методы.

Тут - это где?  Я что-то пропустил, и в php теперь нет функций? Или неведомая сила не дает их использовать в опенкарте?
Открываем \catalog\controller\common\cart.php, и что мы видим :o
 

public function index() {

.....
}
	public function info() {
		$this->response->setOutput($this->index());
	}

По поводу вопроса топика - не совсем понятно, в чем проблема. Хорошо бы больше картинок :)

Змінено користувачем Shureg
Надіслати
Поділитися на інших сайтах


Вопрос как вызывать ФУНКЦИЮ внутри контроллера...

По условию типа if post type == dogs выполнить public function dogs()  этого же контроллера 

Надіслати
Поділитися на інших сайтах

3 минуты назад, zomo сказал:

Вопрос как вызывать ФУНКЦИЮ внутри контроллера...

По условию типа if post type == dogs выполнить public function dogs()  этого же контроллера 

Генерируйте ссылки вида:
route=information/info/dogs
route=information/info/cats
Последний параметр в route (Если разделить по /) и будет функция контроллера

  • +1 1
Надіслати
Поділитися на інших сайтах

class ControllerInformationInfo extends Controller {
    public function index() {
        if($this->request->post['type'] === 'cats') {
            $this->cats();
        } elseif($this->request->post['type'] === 'dogs') {
            $this->dogs();
        }
    }
    
    private function cats() {
        
    }
    
    private function dogs() {
        
    }
}

 

  • +1 2
Надіслати
Поділитися на інших сайтах


3 минуты назад, iPython сказал:

Действительно, и что же мы там видим?

Функции мы там видим. Любителям умничать - читать учебник. Например
https://www.php.net/manual/ru/language.oop5.basic.php
 

Цитата

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

Или хотя бы вики
https://ru.wikipedia.org/wiki/Метод_(программирование)

Надіслати
Поділитися на інших сайтах


5 минут назад, iPython сказал:

Возможно сможете различать где метод класса, а где функция.

Знаете, есть такое классическое произведение. Там герой очень удивился, узнав, что всю жизнь говорил прозой.
Так вот, вы тот же Журден, только упертый: 
"проза (функции) - это одно,  а что я говорю (методы) - совсем другое!"

Надіслати
Поділитися на інших сайтах


4 минуты назад, iPython сказал:

Автор учится программированию, как Вы думаете, не стоит ли его сразу направить на правильный путь?

А чем мой путь неправильный? Вы считаете, что читать ман по php - это плохой путь?

 

5 минут назад, iPython сказал:

В своём кругу Вы метод можете называть как угодно, но не вводите в заблуждение и не учите дурному остальных.


То есть, круг читающих маны - не ваш круг. Ладно, не буду спорить. Каждому свое.

Надіслати
Поділитися на інших сайтах


@Shureg

 

Цитата

Ме́тод в объектно-ориентированном программировании — это функция или процедура, принадлежащая какому-то классу или объекту.

 

Процедура??

Надіслати
Поділитися на інших сайтах

5 минут назад, chukcha сказал:

Процедура??

Процедура от функции отличается тем, что ничего не возвращает. Видимо, в каких то языках еще уцелела. (Хотя почему в каких-то, в паскале точно есть). Ну, наверное можно как метод представить... 

Надіслати
Поділитися на інших сайтах


как это не возвращает  процедура (параметр переменная)
Это не важно

в php нет понятия процедура
есть функция
но для ООП - это метод, что собственно вам и сказали

а назвать можно как угодно хоть так: proc option (main)




 

Надіслати
Поділитися на інших сайтах

44 минуты назад, chukcha сказал:

как это не возвращает  процедура (параметр переменная)
Это не важно

в php нет понятия процедура
есть функция
но для ООП - это метод, что собственно вам и сказали

а назвать можно как угодно хоть так: proc option (main)

А вы ссылки-то смортели? Ваша "процедура" - она из вики, и не про php ни разу, а вообще, для любого языка. И там, где она есть, она действительно ничего не возвращает, этим и отличаясь от функции.
В ООП метод - это функция. Что, собственно, вам скажет любой учебник или описание, в том числе, для php. 
Тот факт, что функцию привязали к объекту, не делает  ее "не функцией". Поиск по "method function difference php"  в гугле очень поможет.

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.