موضوعات

  • مفاهیم پایه view
  • موتور blade
  • ایجاد view
    • بصورت دستی
    • با استفاده از artisan
    • استفاده از Blade
    • پوشه بندی view ها
  • نمایش view
    • انتقال یک routeبه یک View
    • استفاده از View در یک controller
    • استفاده از کلاس View

view ها در لاراول وظیفه نمایش محتوا را بر عهده دارند . هر ویو مجموعه ای از کدهای html است که برای نمایش صفحات سایت استفاده میشود.view ها در مسیر resources/views ذخیره می شوند..معمولاً از viewها از پسوند .blade.php استفاده می‌شود

ایجاد view

بصورت دستی

در پوشه resource یک فایل با نام home.blade.php ایجاد میکنیم و محتوای html را در آن ذخیره میکنیم

مثال

< div>this is sample < /div>

با artisan

با استفاده از دستور زیر می توان با یک view با نام about در پوشه resource ایجاد کرد و سپس محتوای ان را به دلخواه تغییر داد

php artisan make:view about

استفاده از Blade

موتور blade : لاراول برای مدیریت قالب از موتور blade استفاده میکند این موتور باعث می شود بتوانیم در html از php استفاده کنیم مانند if ,for,while,... یا یک view را در داخل view دیگر مورد استفاده قرار دهیم

ویژگی‌های کلیدی Blade

  1. سینتکس ساده و خوانا: Blade از سینتکسی مشابه HTML استفاده می‌کند که یادگیری و استفاده از آن را آسان می‌سازد.

  2. کامپایل به PHP: تمامی قالب‌های Blade به کد PHP کامپایل می‌شوند و تا زمانی که تغییر کنند، کش می‌شوند. این ویژگی باعث می‌شود که Blade تقریباً هیچ سرباری به برنامه شما اضافه نکند.

  3. امنیت بالا: Blade به‌طور خودکار از حملات XSS (Cross-site scripting) جلوگیری می‌کند.

  4. ارث‌بری قالب‌ها: Blade به شما این امکان را می‌دهد که قالب‌های اصلی (Layouts) تعریف کنید و سپس قالب‌های دیگر را بر اساس آن‌ها ایجاد کنید. این ویژگی از تکرار کد جلوگیری می‌کند و باعث می‌شود تغییرات در ساختار کلی سایت به راحتی اعمال شود.

مثال :فایل post.blade.php راایجاد و داخل ان از سینتکس blade استفاده میکنیم که در نهایت به یک فایل php تبدیل میشود

@foreach ($posts as $post)
{{ $post->title }}
@endforeach

پوشه بندی view ها

در لاراول میتوان ویوها را پوشه بندی کرد یا به ویوهای داخل پوشه ها دسترسی داشت.برای این کار از نقطه(.) استفاده میشود

ایجاد ویو about در داخل پوشه home

php artisan make:view home.about

دسترسی به ویو داخل پوشه

return(view('home.about'))


نمایش View

با استفاده از view

برای نمایش یک ویو میتوان انرا در route استفاده کرد

Route::view('/', 'about');

با استفاده از controller

class aboutController extends Controller{
function index(){
return view('about');
}
}

Route::get('/about',[aboutController::class,'index']);

استفاده از کلاس View

در لاراول میتوان از کلاس View برای رندر کردن قالب‌ها استفاده کرد

مثال:

class aboutController extends Controller{
function index(){
return View::make('about');
}
}

Route::get('/about',[aboutController::class,'index']);

مهمترین متدهای Facade View

دسته‌بندیمتدتوضیحاتمثال
متدهای اصلیmake()ایجاد یک view جدید با داده‌های اختیاریView::make('view.name', ['key' => 'value'])
first()نمایش اولین view موجود از لیست داده شدهView::first(['custom.view', 'default.view'], $data)
exists()بررسی وجود viewif(View::exists('view.name')) { ... }
متدهای زنجیره‌ایwith()افزودن داده به view (تکی یا آرایه)View::make('view')->with('name','John')->with('age',30)
withErrors()افزودن خطاهای اعتبارسنجی به viewView::make('form')->withErrors($validator)
متدهای NamespaceaddNamespace()ثبت namespace جدید برای viewهاView::addNamespace('admin', resource_path('views/admin'))
prependNamespace()اضافه کردن namespace به ابتدای لیستView::prependNamespace('admin', alternative_path())
متدهای پیشرفتهshare()اشتراک داده بین تمام viewهاView::share('siteName','MySite')
composer()ثبت view composer (اجرا پس از ایجاد view)View::composer('profile', fn($view) => $view->with('count', 5))
creator()ثبت view creator (اجرا قبل از ایجاد view)View::creator('profile', ProfileCreator::class)
متدهای رندرrender()رندر view به صورت رشته$html = View::make('view')->render()
renderEach()رندر تکراری یک view برای آیتم‌های داده شدهView::renderEach('view.item', $items, 'item')