Hussein Al Dabwani نشر الأحد في 07:34 أرسل تقرير نشر الأحد في 07:34 كيف اممرر البيانات من controller إلى view ؟ حاولت عدة طرق لم تنجح معي , الكود جاهز فقط اريد إرشادات وشكراً. 2 اقتباس
0 محمد_عاطف نشر الأحد في 09:32 أرسل تقرير نشر الأحد في 09:32 هل تعمل على إطار عمل لارافيل ؟ إذا كان كذلك هل يمكنك توضيح الطرق التي إستخدمتها ؟ يمكن تمرير البيانات من خلال الدالة view هكذا : return view('greeting', ['name' => 'James']); حيث أولا معامل للدالة هو إسم ملف ال blade الخاص بال view والمعامل الثاني هو مصفوفة تقوم بتمرير الإسم الذي ستستعمله والبيانات التي سيتم تمريرها لل view. 1 اقتباس
0 Hussein Al Dabwani نشر الأحد في 09:47 الكاتب أرسل تقرير نشر الأحد في 09:47 (معدل) بتاريخ 16 دقائق مضت قال محمد_عاطف: لا اعمل في إطار عمل ,فقط PHP خام, هل يمكنني التحكم في التوجيه؟ تم التعديل في الأحد في 09:49 بواسطة Hussein Al Dabwani اقتباس
0 محمد_عاطف نشر الأحد في 10:06 أرسل تقرير نشر الأحد في 10:06 بتاريخ 17 دقائق مضت قال Hussein Al Dabwani: هل يمكنك توضيح نظام الملفات لديك كيق تستخدم المتحكمات وملفات العرض ؟ هل تستخدم inclued أو require أم ماذا ؟ إذا كنت تستخدم include إذا يجب أن تكون البيانات معرفة قبل سطر include ليتم رؤيتها بداخل الملف الذي إستوردته. اقتباس
0 Adnane Kadri نشر الأحد في 11:16 أرسل تقرير نشر الأحد في 11:16 بما أن اطار PHP الذي تعمل به مخصص، فالعملية تعتمد بشكل أولي على بنية وتركيب الإطار ولكن عموما، الطريقة المعتمدة هي تعريف هاته المتغيرات بشكل عام global والوصول إليها من داخل ملف العرض. مثال: <?php $x = 10; ?> <p>X value is: <?php echo $x; ?></p> اقتباس
0 Mustafa Suleiman نشر الاثنين في 10:36 أرسل تقرير نشر الاثنين في 10:36 بتضمين ملف View داخل دالة Controller، فالمتغيرات لا تنتقل تلقائيًا إلا إن قمت بإعداد ذلك، وأفضل طريقة في PHP هي استخدام دالة extract() لتحويل مصفوفة إلى متغيرات عادية. فبدلاً من كتابة include في كل مرة، ستقوم بإنشاء دالة موحدة لطلب الـ View من خلال دالة مساعدة في ملف functions.php أو داخل كلاس الكونترولر الأساسي: function view($viewPath, $data = []) { extract($data); $fullPath = __DIR__ . "/views/" . $viewPath . ".php"; if (file_exists($fullPath)) { require $fullPath; } else { die("View file not found: " . $viewPath); } } وفي الكونترولر HomeController.php مثلاً، ستقوم بتجهيز البيانات في مصفوفة وتمريرها: class HomeController { public function index() { $pageTitle = "الصفحة الرئيسية"; $users = ['أحمد', 'سارة', 'خالد']; view('home', [ 'title' => $pageTitle, 'users_list' => $users ]); } } لاحظ كيف نمرر الاسم والقيمة. ثم في ملف العرض home.php، ستجد المتغيرات جاهزة بنفس الأسماء التي وضعتها في مفاتيح المصفوفة ($title و $users_list): <!DOCTYPE html> <html> <head> <title><?php echo $title; ?></title> </head> <body> <h1>قائمة المستخدمين</h1> <ul> <?php foreach($users_list as $user): ?> <li><?php echo $user; ?></li> <?php endforeach; ?> </ul> </body> </html> وآلية التحكم بالتوجيه تعتمد على جعل جميع الطلبات تمر عبر ملف واحد وهو index.php والذي يقرر أي Controller يتم تشغيله، وذلك الملف تضعه في مجلد المشروع الرئيسي. وبه ستقوم سنقوم بقراءة الرابط واستدعاء الكلاس المناسب: <?php require_once 'functions.php'; // التي تحتوي على دالة view require_once 'controllers/HomeController.php'; $request = $_SERVER['REQUEST_URI']; $path = parse_url($request, PHP_URL_PATH); $path = trim($path, '/'); switch ($path) { case '': case 'home': $controller = new HomeController(); $controller->index(); break; case 'about': echo "صفحة من نحن"; break; default: http_response_code(404); echo "404 - الصفحة غير موجودة"; break; } ولكي يعمل الكود أعلاه وتذهب كل الروابط إلى index.php، تحتاج لإنشاء ملف .htaccess بجانب index.php يحتوي على: RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php [QSA,L] اقتباس
السؤال
Hussein Al Dabwani
كيف اممرر البيانات من controller إلى view ؟ حاولت عدة طرق لم تنجح معي , الكود جاهز فقط اريد إرشادات وشكراً.
5 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.