[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как устранить ошибку: «call_user_func_array() expe
Страницы: 1, 2, 3, 4
RomanRomanov
Здравствуйте!Проблема при открытии /cabinet/ возникает ошибка - " Warning: call_user_func_array() expects parameter 1 to be a valid callback, class 'SiteController' does not have a method 'actionIndexcsite' in D:\Server\OpenServer\domains\e-shopper.ru\app\components\router.php on line 47". Если нужно, вот мой репозиторий - https://github.com/Roman-Romanov97/phpshop (commit "error"). Буду благодарен за помощь.
Возможно проблема в конфигурации домена. Код ожидает, что сайт находится в корневой папке домена, а у меня он в папке app.Изменять пробовал, не помогло. Но суть проблемы видимо такая
VeRTak
Цитата (RomanRomanov @ 19.01.2016 - 22:54)
Код ожидает, что сайт находится в корневой папке домена, а у меня он в папке app


Ошибка говорит что ожидает параметр ph34r.gif
RomanRomanov
я в курсе. Более того, скажу, что пробовал задавать ненайденный параметр, как имя метода, пробовал выносить все из папки app, пробовал в роутах добавлять различные пути, решения не нашел
sergeiss
RomanRomanov, ты переводил текст ошибки на русский? Там прямо сказано, у какого класса нет какого метода. А ты, судя по всему, вызываешь его (на гитхаб не ходил, сужу только по тексту ошибки), т.е. несуществующий метод.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
casper - gg
Цитата
call_user_func_array() ожидает параметр 1

у Вас вот так

$result = call_user_func_array(array($controllerObject, $actionName), $parameters);

а в описании функции вот так:

call_user_func_array('debug', array("c", $c));

может вот так нужно:

$result = call_user_func_array($parameters, array($controllerObject, $actionName));

хотя причина может глубже лежать
RomanRomanov
Цитата (casper - gg @ 19.01.2016 - 23:05)
$result = call_user_func_array($parameters, array($controllerObject, $actionName));

не так, так не работает.
Цитата (sergeiss @ 19.01.2016 - 23:01)
ты переводил текст ошибки на русский? Там прямо сказано, у какого класса нет какого метода. А ты, судя по всему, вызываешь его (на гитхаб не ходил, сужу только по тексту ошибки), т.е. несуществующий метод.

я это прекрасно вижу, но, в остальных разделах все нормально вызывается, в том числе другой actionIndex() для другого представления
RomanRomanov
Цитата (casper - gg @ 19.01.2016 - 23:05)
хотя причина может глубже лежать

Причина глубже лежит)
casper - gg
Цитата

Описание

mixed call_user_func_array ( callback function [, array param_arr] )

Вызывает пользовательскую функцию function, с параметрами из массива param_arr.


первый параметр функции судя по этому, не может быть массивом.
VeRTak
Цитата (RomanRomanov @ 19.01.2016 - 23:13)
Причина глубже лежит)


var_damp в помощь по каждой части кода тогда
RomanRomanov
Цитата (Wind @ 19.01.2016 - 23:14)
var_damp в помощь по каждой части кода тогда

тоже пробовал
Цитата (casper - gg @ 19.01.2016 - 23:14)
первый параметр функции судя по этому, не может быть массивом.

parameters - является массивом. actionname - метод, колбэк ф-ция
casper - gg
а если вместо этого

array($controllerObject, $actionName)

написать вручную название функции, тогда сработать по логике должно, значит уже ясно где рыть дальше нужно будет
RomanRomanov
Цитата (casper - gg @ 19.01.2016 - 23:20)
написать вручную название функции, тогда сработать по логике должно, значит уже ясно где рыть дальше нужно будет

все пало)
casper - gg
??? в таких случаях я иду пить чай, а потом начинаю все с начала просматривать, бывает что даже быстро нахожу причину, а бывает что все приходится переписывать sad.gif
RomanRomanov
Цитата (casper - gg @ 19.01.2016 - 23:28)
??? в таких случаях я иду пить чай, а потом начинаю все с начала просматривать, бывает что даже быстро нахожу причину, а бывает что все приходится переписывать 

четвертый день с этой ошибкой плаваю, менял, переписывал, кто- то советовал, с rewrite_rule поиграть, не понимаю где и для чего можно его использовать, говорили вынеси все папки из app, однако и это не помогло, откатил прежнюю версию, пишу на форумы...в отчаянии
casper - gg
если все делать последовательно, то ошибка обязательно найдется... вопрос времени

первое что уже ясно, это то что функция обратного вызова не работает, по причине неправильно поданных аргументов в нее, а это или Имя функции неверное или Список аргументов не соотвествует или и то и то, в первую очередь можно попробовать добиться верной работы самой функции способом "прописать вручную и название вызываемой функции и аргументы передаваемые ей, когда вручную все заработает, тогда уж можно будет отлаживать далее. Может проблема в подставляемой функции (может ее не существует или она не подключена или еще что, аргументы не те). Если вручную прописанные данные не срабатывают, значит нужно искать ошибки в самих функциях или способах их подключения...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.