دوره آموزشی

دوره آموزشی ۱۰۰ پروژه جاوا اسکریپت + پروژه محور
مبتدی تا پیشرفته در حال ضبط

دوره آموزشی ۱۰۰ پروژه جاوا اسکریپت + پروژه محور

00:00:00
0 دانشجو
رایگان
مشاهده دوره
آموزش پروژه محور ساخت فروشگاه فایل دانلودی با لاراول ۱۳
پیشرفته در حال ضبط

آموزش پروژه محور ساخت فروشگاه فایل دانلودی با لاراول ۱۳

00:38:53
0 دانشجو
1,499,000 تومان
مشاهده دوره
40 تخفیف آموزش حرفه ای طراحی قالب شرکتی بر پایه وردپرس
سطح متوسط تکمیل دوره

آموزش حرفه ای طراحی قالب شرکتی بر پایه وردپرس

08:32:53
3 دانشجو
999,000 599,000 تومان
مشاهده دوره
آموزش حرفه ای طراحی قالب فروشگاهی بر پایه ووکامرس
پیشرفته تکمیل دوره

آموزش حرفه ای طراحی قالب فروشگاهی بر پایه ووکامرس

12:09:12
7 دانشجو
1,499,000 تومان
مشاهده دوره

وبلاگ

نمایش داده ها با استفاده از View Composer در لاراول

2 دقیقه

نمایش داده ها با استفاده از View Composer در لاراول

در لاراول قابلیت جالبی به نام View Composer وجود دارد که عملکرد آن نمایش داده ها در بخش های از صفحات View است که نیازی نیست که مستقیم از کنترلر داده ها را از مدل بگیریم و به View ارسال کنیم که البته این مورد برای صفحاتی که کم باشد جواب می دهد.

اما وقتی صفحات آن بیشتر می شود و نیاز دارید در آن از صفحه داده ای نمایش بدهید که به مشکل اساسی بر می خورید و خطاهایی دریافت می کنید. این خطا ها نشان از این است که View مورد نظر برای شناسایی آن صفحه تعریف نشده است که بتواند داده ای در آن نمایش داده شود.

به ترتیب زیر پیش بروید.

با استفاده از Service Provider فایلی به نام ViewServiceProvider ایجاد می کنیم.

1. دستور زیر:
php artisan make:provider ViewServiceProvider 
2. به مسیر config/app بروید و مسیر ViewServiceProvider در قسمت providers در انتهای آن را فراخوانی کنید:
Illuminate\View\ViewServiceProvider::class,
3. در مسیر app/Http پوشه ای به نام View و زیر مجموعه پوشه به نام Composers ایجاد کنید و فایلی به نام PostComposer.php ایجاد کنید و کد زیر را وارد کنید:
<?php

namespace App\Http\View\Composers;

use App\Models\Post;
use Illuminate\View\View;

class PostComposer
{
    public function __construct()
    {
        $this->posts = Post::orderBy('id', 'desc')->get();
    }

    public function compose(View $view)
    {
        $view->with('posts', $this->posts);
    }
}
4. بر می گردیم به فایل ViewServiceProvider در قسمت تابع بوت View مورد نظر را فراخوانی کنید:
use App\Http\View\Composers\PostComposer;

public function boot(): void
{
   View::composer('home.sidebar.sidebar', PostComposer::class);
}

عملکرد کد بالا اینکه در جایی که می خواهید که داده مثلا در سایدبار یا ابزارک نمایش دهید و داده رو از PostComposer::class که در آن مدل Post تعریف شده را دریافت و در صفحه home.sidebar.sidebar نمایش می دهد.

حالا با تعریف حلقه foreach داده ها را نمایش می دهیم.
<ul class="list-group">
    @foreach($posts as $post)
         <li class="list-group-item">{{$post->title}}</li>
    @endforeach
</ul>

موفق باشید 🙂

لاراول (Laravel) آوریل/12/2023 1162 بدون دیدگاه
75 
نظرات

دیدگاه شما


© راییوم 05-1402 تمامی حقوق محفوظ است.
قدرت گرفته از وردپرس و طراحی شده با فریم ورک Tani