RomanRomanov
19.01.2016 - 22:54
Здравствуйте!Проблема при открытии /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
19.01.2016 - 22:58
Цитата (RomanRomanov @ 19.01.2016 - 22:54) |
Код ожидает, что сайт находится в корневой папке домена, а у меня он в папке app |
Ошибка говорит что ожидает параметр
RomanRomanov
19.01.2016 - 23:00
я в курсе. Более того, скажу, что пробовал задавать ненайденный параметр, как имя метода, пробовал выносить все из папки app, пробовал в роутах добавлять различные пути, решения не нашел
sergeiss
19.01.2016 - 23:01
RomanRomanov, ты переводил текст ошибки на русский? Там прямо сказано, у какого класса нет какого метода. А ты, судя по всему, вызываешь его (на гитхаб не ходил, сужу только по тексту ошибки), т.е. несуществующий метод.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
casper - gg
19.01.2016 - 23:05
Цитата |
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
19.01.2016 - 23:08
Цитата (casper - gg @ 19.01.2016 - 23:05) |
$result = call_user_func_array($parameters, array($controllerObject, $actionName)); |
не так, так не работает.
Цитата (sergeiss @ 19.01.2016 - 23:01) |
ты переводил текст ошибки на русский? Там прямо сказано, у какого класса нет какого метода. А ты, судя по всему, вызываешь его (на гитхаб не ходил, сужу только по тексту ошибки), т.е. несуществующий метод. |
я это прекрасно вижу, но, в остальных разделах все нормально вызывается, в том числе другой actionIndex() для другого представления
RomanRomanov
19.01.2016 - 23:13
Цитата (casper - gg @ 19.01.2016 - 23:05) |
хотя причина может глубже лежать |
Причина глубже лежит)
casper - gg
19.01.2016 - 23:14
Цитата |
Описание
mixed call_user_func_array ( callback function [, array param_arr] )
Вызывает пользовательскую функцию function, с параметрами из массива param_arr.
|
первый параметр функции судя по этому, не может быть массивом.
VeRTak
19.01.2016 - 23:14
Цитата (RomanRomanov @ 19.01.2016 - 23:13) |
Причина глубже лежит) |
var_damp в помощь по каждой части кода тогда
RomanRomanov
19.01.2016 - 23:17
Цитата (Wind @ 19.01.2016 - 23:14) |
var_damp в помощь по каждой части кода тогда |
тоже пробовал
Цитата (casper - gg @ 19.01.2016 - 23:14) |
первый параметр функции судя по этому, не может быть массивом. |
parameters - является массивом. actionname - метод, колбэк ф-ция
casper - gg
19.01.2016 - 23:20
а если вместо этого
array($controllerObject, $actionName)
написать вручную название функции, тогда сработать по логике должно, значит уже ясно где рыть дальше нужно будет
RomanRomanov
19.01.2016 - 23:23
Цитата (casper - gg @ 19.01.2016 - 23:20) |
написать вручную название функции, тогда сработать по логике должно, значит уже ясно где рыть дальше нужно будет |
все пало)
casper - gg
19.01.2016 - 23:28
??? в таких случаях я иду пить чай, а потом начинаю все с начала просматривать, бывает что даже быстро нахожу причину, а бывает что все приходится переписывать
RomanRomanov
19.01.2016 - 23:31
Цитата (casper - gg @ 19.01.2016 - 23:28) |
??? в таких случаях я иду пить чай, а потом начинаю все с начала просматривать, бывает что даже быстро нахожу причину, а бывает что все приходится переписывать |
четвертый день с этой ошибкой плаваю, менял, переписывал, кто- то советовал, с rewrite_rule поиграть, не понимаю где и для чего можно его использовать, говорили вынеси все папки из app, однако и это не помогло, откатил прежнюю версию, пишу на форумы...в отчаянии
casper - gg
19.01.2016 - 23:42
если все делать последовательно, то ошибка обязательно найдется... вопрос времени
первое что уже ясно, это то что функция обратного вызова не работает, по причине неправильно поданных аргументов в нее, а это или Имя функции неверное или Список аргументов не соотвествует или и то и то, в первую очередь можно попробовать добиться верной работы самой функции способом "прописать вручную и название вызываемой функции и аргументы передаваемые ей, когда вручную все заработает, тогда уж можно будет отлаживать далее. Может проблема в подставляемой функции (может ее не существует или она не подключена или еще что, аргументы не те). Если вручную прописанные данные не срабатывают, значит нужно искать ошибки в самих функциях или способах их подключения...
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.