Jump to content

Recommended Posts

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

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

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

Share this post


Link to post
Share on other sites

попробуйте

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

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

 

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

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

попробуйте

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

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

 

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

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

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

 

 

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

 

я, конечно, только-только изучаю 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

Share this post


Link to post
Share on other sites

 

а вот при

    public function test($data, $dat) {

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

Да.

 

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

нет

  • +1 1

Share this post


Link to post
Share on other sites

public function test($data, $dat) {

Да.

 

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

нет

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.