بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

خطای Warning: call_user_func_array() expects parameter 2 to be array, string given

مدیریت گفتگو
Alireza 10 سال پیش
آخرین تغییر: 10 سال پیش

سلام من تو روتینگ درواقع بعد از تنظیم auto load  به این مشکل برخوردم و وقتی پارامتری وارد url  میکنم این خطا رو میده

Warning: call_user_func_array() expects parameter 2 to be array, string given

$controllerClassName = ucfirst($controller) . 'Controller';
$controllerInctance = new $controllerClassName();
if (!method_exists($controllerInctance, $method)) {
message('404', true);
}
call_user_func_array(array($controllerInctance, $method), $params);

نظرات

پاسخ‌ها 2

117923 10 سال پیش

میگه 2 تا پارامتر میگیره توی url پارامتر ارسال نکردید احتمالا

نظرات

امین علیپور 10 سال پیش

من یه کدی به همین روتینگ اضاف کردم که اگر ادرس وجود نداشت یه صفحه باز بشه و خیلی خوب کار میکنه .میزارمش  تا دوستان استفاده کنن

کد فایل core.php

 global $controller;
$amin =getcwd()."/mvc/controller/" . $controller . ".php";

if (file_exists($amin)) {

if (strhas($classname, "Controller")) {
$filename = str_replace("Controller", "", $classname);
$filename = strtolower($filename);
require_once(getcwd() . "/mvc/controller/$filename.php");

}
} else {
View::render('/test.php');
}



کد فایل index.php


if (count($parts > 1)) {
$controller = $parts[1];
if (count($parts) > 2) {
$method = $parts[2];
}

$params = array();
for ($i = 3; $i < count($parts); $i++) {
$params[] = $parts[$i];
}
}

global $controllerClassname;
$controllerClassname = ucfirst($controller) . "Controller";
if (class_exists($controllerClassname)) {
$controllerInstance = new $controllerClassname();
if (isset($controllerInstance) and isset($method)) {
if (method_exists($controllerInstance, $method)) {
call_user_func_array(array($controllerInstance, $method), $params);
} else {
View::render('/test.php');
}
} else {
View::render('/test.php');
}

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .