Hussein Al Dabwani نشر 7 ديسمبر 2025 أرسل تقرير نشر 7 ديسمبر 2025 كيف اممرر البيانات من controller إلى view ؟ حاولت عدة طرق لم تنجح معي , الكود جاهز فقط اريد إرشادات وشكراً. 2 اقتباس
0 محمد عاطف25 نشر 7 ديسمبر 2025 أرسل تقرير نشر 7 ديسمبر 2025 هل تعمل على إطار عمل لارافيل ؟ إذا كان كذلك هل يمكنك توضيح الطرق التي إستخدمتها ؟ يمكن تمرير البيانات من خلال الدالة view هكذا : return view('greeting', ['name' => 'James']); حيث أولا معامل للدالة هو إسم ملف ال blade الخاص بال view والمعامل الثاني هو مصفوفة تقوم بتمرير الإسم الذي ستستعمله والبيانات التي سيتم تمريرها لل view. 1 اقتباس
0 Hussein Al Dabwani نشر 7 ديسمبر 2025 الكاتب أرسل تقرير نشر 7 ديسمبر 2025 (معدل) بتاريخ 16 دقائق مضت قال محمد_عاطف: لا اعمل في إطار عمل ,فقط PHP خام, هل يمكنني التحكم في التوجيه؟ تم التعديل في 7 ديسمبر 2025 بواسطة Hussein Al Dabwani اقتباس
0 محمد عاطف25 نشر 7 ديسمبر 2025 أرسل تقرير نشر 7 ديسمبر 2025 بتاريخ 17 دقائق مضت قال Hussein Al Dabwani: هل يمكنك توضيح نظام الملفات لديك كيق تستخدم المتحكمات وملفات العرض ؟ هل تستخدم inclued أو require أم ماذا ؟ إذا كنت تستخدم include إذا يجب أن تكون البيانات معرفة قبل سطر include ليتم رؤيتها بداخل الملف الذي إستوردته. اقتباس
0 Adnane Kadri نشر 7 ديسمبر 2025 أرسل تقرير نشر 7 ديسمبر 2025 بما أن اطار PHP الذي تعمل به مخصص، فالعملية تعتمد بشكل أولي على بنية وتركيب الإطار ولكن عموما، الطريقة المعتمدة هي تعريف هاته المتغيرات بشكل عام global والوصول إليها من داخل ملف العرض. مثال: <?php $x = 10; ?> <p>X value is: <?php echo $x; ?></p> اقتباس
0 Mustafa Suleiman نشر 8 ديسمبر 2025 أرسل تقرير نشر 8 ديسمبر 2025 بتضمين ملف 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] اقتباس
0 Sherif Aboghazala نشر 18 ديسمبر 2025 أرسل تقرير نشر 18 ديسمبر 2025 أولاً: تأكد أن الـ Controller يُنفَّذ فعلاً ضع هذا مؤقتًا داخل الدالة: echo "Controller Works"; exit; إذا ظهر النص الكنترولر يعمل إذا لا → المشكلة في Route. الطريقة الصحيحة لتمرير البيانات (Laravel) مثال كامل صحيح 100٪ Controller public function index() { $name = "Ahmed"; return view('test', compact('name')); } View resources/views/test.blade.php <h1>{{ $name }}</h1> إذا لم يظهر Ahmed → عندك خطأ في أحد النقاط التالية. أكثر 5 أسباب شائعة للمشكلة 1) اسم المتغير لا يطابق compact('name') // صحيح وفي الـ View: {{ $name }} // صحيح هذا خطأ: {{ $username }} 2) اسم ملف الـ View خاطئ return view('test'); يجب أن يكون: resources/views/test.blade.php 3) تستخدم PHP عادي داخل Blade خطأ: <?php echo $name; ?> الصحيح: {{ $name }} 4) لا يوجد return خطأ: view('test', compact('name')); الصحيح: return view('test', compact('name')); 5) Blade لا يُفسَّر تأكد أن الملف: test.blade.php وليس: test.php اختبار سريع بدون Blade جرّب هذا: Controller public function index() { return "Laravel Controller OK"; } إذا ظهر النص → Laravel شغال سليم. لو ما زالت المشكلة أرسل لي: كود الـ Controller كود الـ Route اسم ومكان ملف الـ View وسأعطيك الحل الدقيق في سطره مباشرة. اقتباس
السؤال
Hussein Al Dabwani
كيف اممرر البيانات من controller إلى view ؟ حاولت عدة طرق لم تنجح معي , الكود جاهز فقط اريد إرشادات وشكراً.
6 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.