Перейти к содержанию
YoyoT

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

Рекомендуемые сообщения

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

попробуйте

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

$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 аргумента

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

два, ну как-бы args свойство идет массивом вот я в масив передаю нужные аргументы

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

попробуйте

$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 - массив

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

копируйте текст ошибки и покажите сигнатуру метода

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так может сам метод требует два аргумента?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

 

Warning: Missing argument 2 for ControllerToolMymodule::checkName() in C:\UwAmp\www\myhost-exemple\admin\controller\tool\mymodule.php

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в метод должен попадать только один аргумент - 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

public function test($data, $dat) {

Да.

 

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

нет

спасибо, буду знать :geek:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.