مشکل در فصل 5 و بخش دوم آموزش
با سلام خدمت دوستان گلم
من در فصل 5 بخش 2 هستم برای اجرای پروژه به مشکل خوردم کسی هست راهنماییم کنه عکس میزارم
کد بخش از
$controllerNewInstans=new $classname(); ایراد میگیرد
<?
define('test',true);
require_once('/system/loader.php');
$uri=getRequestUri();
$uri=str_replace( baseUrl() . '//', '/' , $uri);
$parts=explode('/',$uri);
$controller=$parts[1];
$method=$parts[2];
$params=array();
for($i=3 ; $i<count($parts); $i++){
$params[]=$parts[$i];
}
$classname =ucfirst($controller)."Controller";
$controllerNewInstans=new $classname();
call_user_func_array(array($controllerNewInstans, $method), $params);
?>
سلام مجدد
ببخشید حق با شما بود و من اشتباه کردم، بله className متغییر هست و من دقت لازم رو نداشتم، اما در مورد مشکل پیش اومده، هر چند به نظرم تا الان حلش کردید ولی من میگم، شاید به درد کسی خورد.
شما یک آدرس دارید بدین صورت: http://notes.local/test-notes/user/login
بعد احتمال زیاد baseUrl برای ما این عبارت رو بر می گردونه: http://notes.local/
با یک اسلش در انتها و وقتی شما دستور زیر رو صادر می کنید:
$uri=str_replace( baseUrl() . '//', '/' , $uri)
نتیجه میشه این عبارت: /test-notes/user/login
و آرایه بدست اومده میشه این: Array ( [0] => [1] => test-notes [2] => user [3] => login )
عنصر یکم که کنترلر شما هست، شده test-notes در حالی که باید میشد، user.
پیام خطا هم داره همینو میگه، میگه من کلاسی به نام test-notesController ندارم.
پس موقع مقدار دهی به کنترلر از این عبارت استفاده کنید :
$controller=$parts[2];
$method=$parts[3];
$params=array();
for($i=4 ; $i<count($parts); $i++){
$params[]=$parts[$i];
}
و یا توی جای گذاری ها baseUrl رو درست کنید.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .

$obj = new JalaliDate()(8 سال پیش)