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

مشکل در فصل 5 و بخش دوم آموزش

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

با سلام خدمت دوستان گلم

من در فصل 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);

?>

نظرات

مهدی 8 سال پیش
کسی نیست جواب مارو بده ؟
مهدی 8 سال پیش
این مشکل کسی میدونه چیه؟
hosein 8 سال پیش
سلام، علامت $ قبل از className رو بردار
مهدی 8 سال پیش
classname یک متغییر هست نمیشه که $ برداشت
مگاهـــرتز 8 سال پیش
متغییر نیست ها ؛ اسمه کلاسه ؛ اسمه کلاس همیشه بدون $ میاد $obj = new JalaliDate()

پاسخ‌ها 1

hosein 8 سال پیش

سلام مجدد
ببخشید حق با شما بود و من اشتباه کردم، بله 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 رو درست کنید.

نظرات

مهدی 8 سال پیش
ممنونم دوست من با برسی های زیاد کشف شد

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