PishroApp

28 بهمن 1397 ساعت 16:18

ایجاد متغییر های سراسری برای استفاده در تمام view ها در لاراول 5

شاید برای شما هم پیش اومده که بخواید یک یا چند متغیر یا variable  رو تو یک یا چند و یا همه ی بلید ها یا view های لاراول فراخونی کنید.

شاید برای شما هم پیش اومده که بخواید یک یا چند متغیر یا variable  رو تو یک یا چند و یا همه ی بلید ها یا view های لاراول فراخونی کنید.

شما می تونید اون  متغییر رو تو فایل کانفیک تعریف و در بخش های متفاوت سیستم با استفاده از تابع config اون رو فراخونی کنید، اما این کار کمی کسل کننده و غیره جالب هست! 

تو این مطلب یاد خواهیم گرفت از دو روش متفاوت و در فایل AppServiceProvider.php یک متغییر سراسری رو تعریف کنیم و به راحتی در تمام بلید ها از اون استفاده کنیم.

 

استفاده از View Share:

فایل AppServiceProvider.php رو باز کنید و در تابع boot کد زیر را قرار دهید:

        view()->share('siteTitle', 'HDTuto.com');

 

در نهایت باید فایل AppServiceProvider.php بصورت زیرخواهد شد:

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider

{

    /**

     * Bootstrap any application services.

     *

     * @return void

     */

    public function boot()

    {

        view()->share('siteTitle', 'HDTuto.com');

       

    }

    /**

     * Register any application services.

     *

     * @return void

     */

    public function register()

    {

        //

    }

}

 

استفاده از Composer:

در این روش نیز می توایند قطعه کد زیر را در app/Providers/AppServiceProvider.php قرار دهید:

	view()->composer('*', function ($view) {

            $view->with('siteTitle', 'HDTuto.com');

        });

در این حالت فایل app/Providers/AppServiceProvider.php بصورت زیر خواهد شد:

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider

{

    /**

     * Bootstrap any application services.

     *

     * @return void

     */

    public function boot()

    {

       	view()->composer('*', function ($view) {

            $view->with('siteTitle', 'HDTuto.com');

        });

    }

    /**

     * Register any application services.

     *

     * @return void

     */

    public function register()

    {

        //

    }

}

 

در هر دو نمونه ما سعی در تعریف متغیری بنام siteTitle داشتیم پس شما می توانید به روش زیر از این متغییر در بلید ها استفاده نمایید:

{{ $siteTitle }}

 

 

در صورتی که سوالی دارید از بخش نظرات اعلام کنید.

امیدوارم این مطلب برای شما مفید باشه.:)

69 admin
نظرات

برای اطلاع از پاسخ به نظر شما می توانید ایمیل یا شماره موبایل خود را وارد نمایید. *

ایمیل و شماره موبایل شما کاملا مخفی خواهد ماند و در سایت نمایش داده نخواهد شد. *

پاسخ به نظر
اگر نظری برای این مطلب ارسال شد از طریق ایمیل مرا اطلاع بده!

هنوز برای این مطلب نظری ارسال نشده است!
0