[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как устранить ошибку: «call_user_func_array() expe
Страницы: 1, 2, 3, 4
Intrerio
Вывожу целый метод и выделяю регулярку.

public function run()
{
// Получаем строку запроса
$uri = $this->getURI();

// Проверяем наличие такого запроса в массиве маршрутов (routes.php)
foreach ($this->routes as $uriPattern => $path) {

// Сравниваем $uriPattern и $uri
if ([b]preg_match("~$uriPattern~", $uri)[/b]) {

// Получаем внутренний путь из внешнего согласно правилу.
$internalRoute = preg_replace("~$uriPattern~", $path, $uri);
echo $uri; //Если ввести не правильный адрес в строке
//пример:www.eshopper.ru/12345 результат 12345
//это есть не существующий адрес!правильно?
//Здесь можно перенаправить результат на страницу 404?
//хостинг виртуальный и не поддерживает страницы ошибок.

// Определить контроллер, action, параметры


$segments = explode('/', $internalRoute);

$controllerName = array_shift($segments) . 'Controller';
$controllerName = ucfirst($controllerName);

$actionName = 'action' . ucfirst(array_shift($segments));

$parameters = $segments;

// Подключить файл класса-контроллера
$controllerFile = ROOT . '/controllers/' .
$controllerName . '.php';

if (file_exists($controllerFile)){
include_once($controllerFile);
}

// Создать объект, вызвать метод (т.е. action)
$controllerObject = new $controllerName;

/* Вызываем необходимый метод ($actionName) у определенного
* класса ($controllerObject) с заданными ($parameters) параметрами
*/


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

// Если метод контроллера успешно вызван, завершаем работу роутера
if ($result != null) {
break;
}
}
}
}


Теперь проблема. Если заменить:

~$uriPattern~
на

~^$uriPattern$~
то ошибка
Warning: call_user_func_array() expects parameter 1 to be a valid callback, class 'SiteController' does not have a method 'actionIndexcsite'
пропадает но во время аякс запроса:
function recievePolis(id,status){  
$.ajax({
url: "/check/oscpv/saveTransfer",
type: "POST",
data: {
id:id,
status:status
},
beforeSend: function(){ $("#ajax_vis").show();},
success:function(data){
$('#transfer').html(data);
$("#ajax_vis").hide();

},
error:function(){
alert('Error!')
$("#ajax_vis").hide();
}
}
);
}
возникает ошибка что класс не найден, и это только по аяксу.
Быстрый ответ:

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