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

Синтаксис load->controller() ?


Recommended Posts

Подскажите как правильно передать аргументы в метод?
 

$this->load->controller('module/mymodule/method', array('arg1' => 'name', 'arg2' => 'tel'));

Таким методом пишет что я упустил второй аргумент для своего метода 'method'

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


Подскажите как правильно передать аргументы в метод?

 

$this->load->controller('module/mymodule/method', array('arg1' => 'name', 'arg2' => 'tel'));
Таким методом пишет что я упустил второй аргумент для своего метода 'method'
может потому что аргумент должен быть только один - это массив c аргументами

вот код вызова из action.php

return call_user_func(array($controller, $this->method), $this->args);

а у вас наверное в методе 2 аргумента

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

попробуйте

$this->load->controller('module/mymodule');

$this->method(array('arg1' => 'name', 'arg2' => 'tel'));

 

сильно не пинать - еще не сталкивался

$this->method ЭТО ОБРАЩЕНИЕ К МЕТОДУ ВНУТРИ КЛАССА

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


Подскажите как правильно передать аргументы в метод?

 

$this->load->controller('module/mymodule/method', array('arg1' => 'name', 'arg2' => 'tel'));
Таким методом пишет что я упустил второй аргумент для своего метода 'method'

 

странно, ошибки не должно быть :(

 

 

public function controller($route, $args = array()) {
		$action = new Action($route, $args);

		return $action->execute($this->registry);
	}

здесь $args - массив

 

public function __construct($route, $args = array()) {

...
		if ($args) {
			$this->args = $args;
		}

...

здесь тоже

return call_user_func(array($controller, $this->method), $this->args);

Здесь все равно - потому что $this->args - массив

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

в метод должен попадать только один аргумент - args=array() - смотрите в код

return call_user_func(array($controller, $this->method), $this->args);

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

В методе два аргумента я в массиве два и передаю

 

я, конечно, только-только изучаю php, и может чего не понял, но в

$this->load->controller('module/mymodule/method', array('arg1' => 'name', 'arg2' => 'tel'));

вроде один аргумент всего - в виде массива?

 

при методе вида

    public function test($data) {

все ок

 

а вот при

    public function test($data, $dat) {

и будет Warning: Missing argument 2 for

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

 

а вот при

    public function test($data, $dat) {

и будет Warning: Missing argument 2 for

Да.

 

public function test($data, $dat=array()) {

нет

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

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

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

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

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

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

Вхід

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

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

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

Important Information

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