Emad Saif نشر 21 أغسطس 2022 أرسل تقرير نشر 21 أغسطس 2022 أنا أعمل في مشروع باستخدام لارافيل Laravel، وعندما أواجهة مشكلة وأبحث عنها، أجد أنه في كثير من الأحيان يتم إستعمال extends@ @extends('layouts.main') وفي أحيان أخرى يتم إستعمال include@ @include('layouts.main') ما الفرق بينهما؟ وهل يمكن إستعمال كلًا منهما مكان الآخر؟ 1 اقتباس
0 Hassan Hedr نشر 21 أغسطس 2022 أرسل تقرير نشر 21 أغسطس 2022 يمكن الاستفادة من extends@ لإنشاء قوالب الصفحات بلغة blade، حيث ننشئ ملف عرض قالب يحوي بداخله عدة أقسام بأسماء معينة باستخدام yield@، ولاحقًا يمكن استخدام ملف القالب هذا لإنشاء عدة ملفات عرض، حيث يسمح ذلك بتقليل التكرار لهيكلية بيانات الصفحات المتشابهة وتوحيدها، فمثلًا يمكن إنشاء ملف قالب أساسي لجميع الصفحات view/layouts/main.blade.php كالتالي: <html> <head> <title>@yield('header')</title> </head> <body> @yield('content') </body> </html> ويمكن استخدامه ضمن أي صفحة كالتالي: @extends('layouts.main') @section('title') صفحة فرعية @endsection @section('content') <h1>أهلًا بكم</h1> @endsection وسينتج عن تفسير الصفحة السابقة محتوى HTML التالي: <html> <head> <title>الصفحة الرئيسية</title> </head> <body> <h1>أهلًا بكم</h1> </body> </html> أما include@ فهي تشبه في عملة include في PHP، حيث تقتصر مهمتها على جلب محتوى ملف العرض المذكور وطباعته مكانها، يفيد ذلك في إنشاء مكونات وإعادة استخدامها في أكثر من مكان دون الحاجة لتكرار كتابة هيكليتها في كل مرة، مثلًا إذا كان لدينا المكون views/components/nav.blade.php كالتالي: <nav>...</nav> وفي أي مكان ضمن أي ملف عرض آخر استخدمنا المكون السابق باستخدام include@ كالتالي: @include('components.nav') <div>..</div> فبعد تفسير الصفحة السابقة سينتج ما يلي: <nav>..</nav> <div>..</div> اقتباس
السؤال
Emad Saif
أنا أعمل في مشروع باستخدام لارافيل Laravel، وعندما أواجهة مشكلة وأبحث عنها، أجد أنه في كثير من الأحيان يتم إستعمال extends@
وفي أحيان أخرى يتم إستعمال include@
@include('layouts.main')
ما الفرق بينهما؟ وهل يمكن إستعمال كلًا منهما مكان الآخر؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.