آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

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

مهدی  8 سال پیش  8 سال پیش
0 0

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

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

?>

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

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

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

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