লারাভেল 5 এ সমস্ত দর্শনগুলিতে ডেটা কীভাবে পাস করবেন?


125

আমি আমার লারাভেল 5 অ্যাপ্লিকেশনে সমস্ত দৃষ্টিতে কিছু ডিফল্ট ডেটা অ্যাক্সেসযোগ্য পেতে চাই।

আমি এটির জন্য অনুসন্ধান করার চেষ্টা করেছি তবে কেবল লারাভেল ৪-এর জন্য ফলাফলগুলি খুঁজে পেয়েছি I আমি এখানে 'সমস্ত দর্শনের সাথে ডেটা ভাগ করে নেওয়ার' ডকুমেন্টেশনটি পড়েছি তবে কী করতে হবে তা আমি বুঝতে পারি না। নিম্নলিখিত কোডটি কোথায় রাখা উচিত?

View::share('data', [1, 2, 3]);

আপনার সাহায্যের জন্য ধন্যবাদ.


ঠিক আছে, আপনার এই প্রয়োজনীয়তাটি পরিচালনা করতে স্টার্টআপ কোড দরকার?
সাফুর সাফদার 14

1
একটি ডেটাবেস কল ফলাফলের সাথে একটি পরিষেবা সরবরাহকারীর ভিউ :: শেয়ার ব্যবহার করে শীর্ষস্থানীয় হ'ল রিফ্রেশ ডিবি স্থানান্তর চলাকালীন বা একটি অ্যাক্সেসযোগ্য ডিবি সংযোগের সাথে সন্ধ্যা চালানোর চেষ্টা করার সময় অ্যাপ্লিকেশনটি ত্রুটিযুক্ত করবে (দীর্ঘ গল্প, .env.dusk.local পরিষেবা প্রদানকারী চালিত হওয়ার পরে কেবল ব্যবহৃত হয়)। বেস কন্ট্রোলার বা মিডলওয়ারে নীচে উল্লিখিত হিসাবে সেরা।
অ্যান্ডি লোবেল

এছাড়াও *ভিউ কমপোজারদের ব্যবহার করার সময় সাবধানতা অবলম্বন করুন বিশেষত ডিবি কোয়েরি ব্যবহার করে, কারণ এটি প্রতিটি অন্তর্ভুক্ত সাব ভিউ, উপাদান ইত্যাদির জন্য চালানো হয়, যাতে আপনি শত শত অপ্রয়োজনীয় প্রশ্নগুলি চালিয়ে যেতে পারেন, সর্বোত্তম বিষয়টি হল বেস ভিউ যেমন লেআউটগুলি ব্যবহার করা। অ্যাপ্লিকেশন তারপর প্রয়োজন হিসাবে তথ্য নিচে পাস।
অ্যান্ডি লোবেল

উত্তর:


221

এই লক্ষ্যটি বিভিন্ন পদ্ধতির মাধ্যমে অর্জন করতে পারে,

1. বেসকন্ট্রোলার ব্যবহার করা

আমি যেভাবে জিনিসগুলি সেট আপ করতে চাই, আমি একটি BaseControllerবর্গ তৈরি করি যা লারাভেলের নিজস্ব প্রসারিত করে Controllerএবং সেখানে বিভিন্ন বিশ্বব্যাপী জিনিসগুলি সেট আপ করি। অন্য সমস্ত কন্ট্রোলার তারপরে BaseControllerলারাভেলের কন্ট্রোলারের চেয়ে প্রসারিত হয় ।

class BaseController extends Controller
{
  public function __construct()
  {
    //its just a dummy data object.
    $user = User::all();

    // Sharing is caring
    View::share('user', $user);
  }
}

ফিল্টার ব্যবহার 2

আপনি যদি কোনও সত্যের জন্য জানেন যে আপনি পুরো অ্যাপ্লিকেশন জুড়ে প্রতিটি অনুরোধের উপর মতামতের জন্য কিছু সেট আপ করতে চান, তবে আপনি এটি ফিল্টারের মাধ্যমেও করতে পারেন যা অনুরোধের আগে চলে - লারাভেলের ইউজার অবজেক্টের সাথে এটিই আমি আচরণ করি।

App::before(function($request)
{
  // Set up global user object for views
  View::share('user', User::all());
});

অথবা

আপনি নিজের ফিল্টারটি নির্ধারণ করতে পারেন

Route::filter('user-filter', function() {
    View::share('user', User::all());
});

এবং এটিকে সাধারণ ফিল্টার কলিংয়ের মাধ্যমে কল করুন।

সংস্করণ 5 অনুযায়ী আপডেট করুন

৩. মিডলওয়্যার ব্যবহার করা

এর View::shareসাথে ব্যবহার করা হচ্ছেmiddleware

Route::group(['middleware' => 'SomeMiddleware'], function(){
  // routes
});



class SomeMiddleware {
  public function handle($request)
  {
    \View::share('user', auth()->user());
  }
}

৪. ভিউ রচয়িতা ব্যবহার করে

সুরকার দেখুন বিভিন্ন উপায়ে নির্দিষ্ট ডেটা বাঁধতেও সহায়তা করে। আপনি সরাসরি নির্দিষ্ট দর্শন বা সমস্ত দর্শনগুলিতে পরিবর্তনশীলকে বাঁধতে পারেন। উদাহরণস্বরূপ আপনি প্রয়োজন অনুযায়ী আপনার ভিউ সুরকার ফাইল সংরক্ষণ করতে আপনার নিজস্ব ডিরেক্টরি তৈরি করতে পারেন। এবং এই ভিউ রচয়িতা ফাইল পরিষেবার মাধ্যমে দর্শনের সাথে ইন্টারঅ্যাক্ট করে।

সুরকারের পদ্ধতিটি বিভিন্ন উপায়ে ব্যবহার করতে পারে দেখুন, প্রথম উদাহরণটি একই রকম দেখতে পারে:

আপনি একটি App\Http\ViewComposersডিরেক্টরি তৈরি করতে পারে ।

সেবা প্রদানকারী

namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class ViewComposerServiceProvider extends ServiceProvider {
    public function boot() {
        view()->composer("ViewName","App\Http\ViewComposers\TestViewComposer");
    }
}

এর পরে, এই সরবরাহকারীটিকে "সরবরাহকারী" বিভাগের অধীনে কনফিগার / অ্যাপ.এফপি যোগ করুন।

TestViewComposer

namespace App\Http\ViewComposers;

use Illuminate\Contracts\View\View;

class TestViewComposer {

    public function compose(View $view) {
        $view->with('ViewComposerTestVariable', "Calling with View Composer Provider");
    }
}

ViewName.blade.php

Here you are... {{$ViewComposerTestVariable}}

এই পদ্ধতিটি শুধুমাত্র নির্দিষ্ট দৃশ্যের জন্য সহায়তা করতে পারে। তবে আপনি যদি সমস্ত দৃশ্যে ভিউ কমপোজারকে ট্রিগার করতে চান তবে আমাদের এই একক পরিবর্তনটি সার্ভিসপ্রাইভাইডারে প্রয়োগ করতে হবে।

namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class ViewComposerServiceProvider extends ServiceProvider {
    public function boot() {
        view()->composer('*',"App\Http\ViewComposers\TestViewComposer");
    }
}

উল্লেখ

লারাভেল ডকুমেন্টেশন

আরও স্পষ্টির জন্য স্পষ্টতার লারাকাস্ট পর্ব

এখনও যদি আমার পক্ষ থেকে অস্পষ্ট কিছু হয় তবে আমাকে জানান।


আপনার উদাহরণটি register()পদ্ধতিটি অনুপস্থিত - এটি
জোনাথন

@ জোনাথন এটি উল্লেখ করার জন্য ধন্যবাদ, তবে উদাহরণে কেবলমাত্র সেই বিভাগটি দেখা উচিত। দেখার সাথে ডেটা ভাগ করে নেওয়ার দৃষ্টিভঙ্গি।
সাফুর সাফদার

আপনি ফিল্টার কোথায় রাখবেন? সম্ভবত সবচেয়ে সঠিক উত্তরটি এখন মিডলওয়্যার গ্রুপগুলি ব্যবহার করছে লারাভেলডডকোড / ডকস / ৫.৩ / মিডলওয়্যার # মিডলওয়্যার- গ্রুপস বা গ্লোবাল মিডলওয়্যার
তোসকান

7
এটি কোনও ভাল ধারণা নয়, দেখুন সুরকাররা প্রতিটি পৃথক দর্শনের জন্য সুরকারের উদাহরণ তৈরি করেন এর অর্থ আপনি যদি 1000 বার লুপ চালান, 1000 রচয়িতা দৃষ্টান্ত তৈরি করা হবে এবং 1000 বার গুলি চালানোর ঘটনাটি পরিচালনা করা হবে যা আপনি চান এমন কিছু নয়।
রেজা শাদমান

4
@ রেজাশাদমান সঠিক! আমি এই কঠিন উপায় শিখেছি। আমি তদন্তের জন্য লারাভেল-ডিবাগবার সরঞ্জাম ইনস্টল না করা পর্যন্ত আমার অ্যাপ্লিকেশনটি এত ধীরে চলছিল। তারপরে আমি বুঝতে পেরেছি যে সমস্ত 8 টি ক্যোয়ারী যেখানে একক পৃষ্ঠার লোডের জন্য প্রায় 15 সময় কার্যকর করা হয়। এর কারণ, অন্তর্ভুক্ত প্রতিটি ব্লেড ফাইলের জন্য ভিউ সুরকারকে কল করা হবে। আপনি যদি নক্ষত্রটি ব্যবহার করছেন তবে তা *। আপনি যদি ব্যবহার না করে থাকেন *তবে আপনার ভাল হওয়া উচিত।
ঘূর্ণিঝড়

66

আপনি হয় নিজের পরিষেবা প্রদানকারী তৈরি করতে পারেন ( ViewServiceProviderনামটি সাধারণ) বা আপনি বিদ্যমানটি ব্যবহার করতে পারেন AppServiceProvider

আপনার নির্বাচিত সরবরাহকারীতে, আপনার কোডটি বুট পদ্ধতিতে রাখুন।

public function boot() {
    view()->share('data', [1, 2, 3]);
}

এটি $dataআপনার সমস্ত দর্শনগুলিতে একটি পরিবর্তনীয় অ্যাক্সেসযোগ্য করে তুলবে ।

আপনি যদি সাহায্যকারীর পরিবর্তে মুখোমুখি ব্যবহার করতে চান তবে পরিবর্তন view()->করুন View::তবে use View;আপনার ফাইলের শীর্ষে থাকতে ভুলবেন না ।


ধন্যবাদ, দুর্দান্ত কাজ করছি। বুট ফাংশনটি কি এই জাতীয় জিনিসটির জন্য বোঝানো হয় বা আপনি আমার নিজের পরিষেবা সরবরাহকারী তৈরি করার পরামর্শ দিচ্ছেন?
রাগনারসন

2
যদি আপনি কেবল একটি বা দুটি জিনিস এটিকে ভাগ করে নেওয়ার জন্য AppServiceProviderপেয়ে থাকেন তবে তা ঠিক আছে, তবে এর চেয়ে আরও বেশি কিছু পেলে আপনাকে নতুন সরবরাহকারী তৈরি করার বিষয়টি বিবেচনা করা উচিত।
মার্ভেলেন

এটি কাজ করছিল তবে আমি কেবল দেখতে পাচ্ছি যে এটি আজ কাজ করছে না! ব্যবহার composer updateকরেও কাজ হচ্ছে না। আসলে এটি মোটেও গুলি চালায় না boot()। আমার দুটি ভেরিয়েবল শেয়ার করা দরকার।
itazzad

11
সচেতন হন যে আপনি যদি ডাটাবেস রেকর্ডগুলি আনছেন তবে এটি কাজ করবে না কারণ মাইগ্রেশন চালানোর আগে এটি ডাকা হবে। সুতরাং আপনি মূলত ডাটাবেস রেকর্ডগুলি উপস্থিত হওয়ার পূর্বে আনার চেষ্টা করছেন। কমপক্ষে আমার কাছে বিষয়টি মনে হয়।
lorey

1
দুর্ভাগ্যক্রমে এটি লগ-ইন ব্যবহারকারী অথ :: ব্যবহারকারী (), সাফুরের # 1 উত্তর ভাগ করে নেওয়ার সাথে কাজ করছে বলে মনে হচ্ছে না :)
স্টান স্মুল্ডার্স

11

আমি এটিকে সবচেয়ে সহজ বলে মনে করেছি। একটি নতুন সরবরাহকারী এবং ব্যবহারকারীকে '*'ওয়াইল্ডকার্ডটি এটিকে সমস্ত দর্শনে সংযুক্ত করার জন্য তৈরি করুন । 5.3 তেও কাজ করে :-)

<?php

namespace App\Providers;

use Illuminate\Http\Request;
use Illuminate\Support\ServiceProvider;

class ViewServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap the application services.
     * @return void
     */
    public function boot()
    {
        view()->composer('*', function ($view)
        {
            $user = request()->user();

            $view->with('user', $user);
        });
    }

    /**
     * Register the application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }
}

2
আপনার কনফিগারেশন / অ্যাপ্লিকেশন "অ্যাপ্লিকেশন \ সরবরাহকারী ervice ভিউসোসোসাইপ্রোভিডার :: শ্রেণিতে" সরবরাহকারীদের অ্যারেতে এই সরবরাহকারীকে যুক্ত করুন
নাদিম0035

8

সেরা উপায়টি ব্যবহার করে চলকটি ভাগ করে নেওয়া হবে View::share('var', $value);

ব্যবহার করে রচনা করার ক্ষেত্রে সমস্যা "*" :

নিম্নলিখিত পদ্ধতির বিবেচনা করুন:

<?php
// from AppServiceProvider::boot()
$viewFactory = $this->app->make(Factory::class);

$viewFacrory->compose('*', GlobalComposer::class);

উদাহরণস্বরূপ ফলক দর্শন থেকে:

  @for($i = 0; $i<1000; $i++)
    @include('some_partial_view_to_display_i', ['toDisplay' => $i])
  @endfor

কি ঘটেছে?

  • দ্য GlobalComposerবর্গ instantiated হয় 1000 ব্যবহার বার App::make
  • ঘটনা composing:some_partial_view_to_display_i 1000 পরিচালিত হয় বার ।
  • দ্য composeফাংশন ভিতরে GlobalComposerবর্গ 1000 গুণ বলা হয়।

তবে আংশিক দৃষ্টিভঙ্গি some_partial_view_to_display_i দ্বারা রচিত ভেরিয়েবলগুলির সাথে কোনও সম্পর্ক নেই GlobalComposerতবে সময় রেন্ডারকে আরও বাড়িয়ে তোলে।

সেরা পদ্ধতির?

View::shareদলবদ্ধ মিডলওয়্যার বরাবর ব্যবহার করা ।

Route::group(['middleware' => 'WebMiddleware'], function(){
  // Web routes
});

Route::group(['prefix' => 'api'], function (){

});

class WebMiddleware {
  public function handle($request)
  {
    \View::share('user', auth()->user());
  }
}

হালনাগাদ

আপনি যদি মিডলওয়্যার পাইপলাইনের মধ্যে গণনা করা কিছু ব্যবহার করছেন তবে আপনি সঠিক ইভেন্টটি শুনতে বা পাইপলাইনের শেষ নীচে ভিউ শেয়ারের মিডলওয়্যারটি রাখতে পারেন।


4

ডকুমেন্টেশনে:

সাধারণত, আপনি কোনও পরিষেবা সরবরাহকারীর বুট পদ্ধতির মধ্যে ভাগ করার পদ্ধতিতে কল করবেন। আপনি এগুলি অ্যাপসোসভারপ্রাইভাইডারে যুক্ত করতে বা তাদের থাকার জন্য একটি পৃথক পরিষেবা সরবরাহকারী তৈরি করতে নির্দ্বিধায়।

আমি মার্ভেলনের সাথে একমত, কেবল AppServiceProviderএটি বুট ফাংশনে রেখে দিন:

public function boot() {
    View::share('youVarName', [1, 2, 3]);
}

অন্য কোনও 'গ্লোবাল' ভেরিয়েবলগুলির সাথে বিভ্রান্তি বা ভুল এড়াতে আমি পরিবর্তনশীলটির জন্য একটি নির্দিষ্ট নাম ব্যবহার করার পরামর্শ দিই।


3

ডকুমেন্টেশনটি শুনতে পাওয়া যায় https://laravel.com/docs/5.4/views#view-composers তবে আমি এটিকে ভেঙে দেব

  1. আপনার অ্যাপ্লিকেশনটির মূল ডিরেক্টরিতে ডিরেক্টরি অ্যাপ্লিকেশন \ সরবরাহকারীদের সন্ধান করুন এবং সুরকার সার্ভিসপ্রোভাইডার.এফপি ফাইলটি তৈরি করুন এবং এতে নীচের পাঠ্যটি অনুলিপি করুন এবং এটি সংরক্ষণ করুন।

    <?php
        namespace App\Providers;
        use Illuminate\Support\Facades\View;
        use Illuminate\Support\ServiceProvider;
    
        class ComposerServiceProvider extends ServiceProvider
        {
            /**
            * Register bindings in the container.
            *
            * @return void
            */
        public function boot()
        {
            // Using class based composers...
            View::composer(
                'profile', 'App\Http\ViewComposers\ProfileComposer'
            );
    
            // Using Closure based composers...
            View::composer('dashboard', function ($view) {
                //
            });
        }
    
        /**
        * Register the service provider.
        *
        * @return void
        */
        public function register()
        {
            //
        }
    }
  2. আপনার অ্যাপ্লিকেশনটির মূল থেকে কনফিগারেশন / অ্যাপ.পিপি খুলুন এবং ফাইলের সরবরাহকারী বিভাগগুলি সন্ধান করুন এবং এই 'অ্যাপ্লিকেশন \ সরবরাহকারী ose সুরকার সার্ভিস প্রোভাইডার ' এর কপি এবং পাস করুন ।

এটি করে, আমরা সুরকার পরিষেবা সরবরাহকারী তৈরি করেছি। আপনি যখন নিজের অ্যাপ্লিকেশনটি যেমন HTTP: // আপনারডোমেন / কিছু / প্রোফাইলের মতো ভিউর সাহায্যে চালনা করেন তখন পরিষেবা সরবরাহকারী কমপোজার সার্ভিসপ্রোভাডার বলা হয় এবং অ্যাপ্লিকেশন \ এইচটিটিপি \ ভিউ কমপোজারস rs প্রোফাইলকম্পোজারটি নীচের কোডটির কারণে পদ্ধতিটি সুরকারকে কল করে ইনস্ট্যান্ট হয় is বুট পদ্ধতি বা ফাংশন।

 // Using class based composers...
 View::composer(
   'profile', 'App\Http\ViewComposers\ProfileComposer'
 );
  1. আপনি যদি আপনার অ্যাপ্লিকেশন রিফ্রেশ করে থাকেন তবে আপনি একটি ত্রুটি পাবেন কারণ অ্যাপ্লিকেশন \ এইচটিটিপি omp ভিউ কমপোজার \ প্রোফাইলকম্পোজার এখনও বিদ্যমান নেই। এখন এটি তৈরি করুন।

ডিরেক্টরি পাথ অ্যাপ / এইচটিটিপি এ যান

  • ভিউ কমপোজারস নামে পরিচিত ডিরেক্টরি তৈরি করুন

  • প্রোফাইল কমপোজার.এফপি ফাইলটি তৈরি করুন ।

    class ProfileComposer
    {
        /**
        * The user repository implementation.
        *
        * @var UserRepository
        */
        protected $users;
    
        /**
        * Create a new profile composer.
        *
        * @param  UserRepository  $users
        * @return void
        */
        public function __construct(UserRepository $users)
        {
            // Dependencies automatically resolved by service container...
            $this->users = $users;
        }
    
        /**
        * Bind data to the view.
        *
        * @param  View  $view
        * @return void
        */
        public function compose(View $view)
        {
            $view->with('count', $this->users->count());
        }
    }

এখন আপনার ভিউতে বা এই ক্ষেত্রে প্রোফাইল.blade.php এ যান এবং যুক্ত করুন

{{ $count }}

এবং এটি প্রোফাইল পৃষ্ঠায় ব্যবহারকারীর সংখ্যা প্রদর্শন করবে।

সমস্ত পৃষ্ঠার গণনা পরিবর্তন করতে

// Using class based composers...
View::composer(
    'profile', 'App\Http\ViewComposers\ProfileComposer'
);

প্রতি

// Using class based composers...
View::composer(
    '*', 'App\Http\ViewComposers\ProfileComposer'
);

<? পিএইচপি এবং নেমস্পেস অ্যাপ \ এইচটিটিপি \ ভিউ কমপোজার; আলোকসজ্জা racts চুক্তিগুলি \ দেখুন use দেখুন; প্রোফাইল
কমপোজার.এফপি

1

আমি মনে করি যে সবচেয়ে ভাল উপায়টি এখানেই রয়েছে View Composers। যদি কেউ এখানে এসেছিলেন এবং এটির জন্য সুরকারদের উপায়ে কীভাবে এটি করতে পারেন তা জানতে চান, তবে আমার উত্তরটি পড়ুন => সমস্ত দর্শনগুলির মধ্যে একটি পরিবর্তনশীল কীভাবে ভাগ করবেন?


1

ডকুমেন্টেশনটি এখানে রয়েছে https://laravel.com/docs/5.4/views#view-composers তবে আমি এটি ভেঙে ফেলব 1. আপনার মূল ডিরেক্টরিতে ডিরেক্টরি সরবরাহকারীদের জন্য অনুসন্ধান করুন এবং সামগ্রী সহ সুরকার সার্ভিসপ্রোভাডার.এফপি তৈরি করুন


1

আপনার কনফিগার ফোল্ডারের অভ্যন্তরে আপনি পিএইচপি ফাইলের নাম তৈরি করতে পারেন উদাহরণস্বরূপ নীচের বিষয়বস্তু সহ "ভ্যারিয়েবল.এফপি":

<?php

  return [
    'versionNumber' => '122231',
  ];

এখন সমস্ত দর্শনগুলির মধ্যে আপনি এটি পছন্দ মতো ব্যবহার করতে পারেন

config('variable.versionNumber')

আমি কিছু ক্ষেত্রে এটি এইভাবে করি, কারণ তথ্যটি সত্যই বিশ্বব্যাপী এবং আপনি যে কোনও জায়গা থেকে এটি অ্যাক্সেস করতে পারেন। সেই কারণে, আমি কনফিগার ফাইলটি "গ্লোবাল.এফপি" বলি এবং আমি আমার কোডের অন্য সমস্ত অংশে অ্যাক্সেসযোগ্য হতে চাই এমন কোনও কিছু সেখানে রেখেছি। কেবল সীমাবদ্ধতা হ'ল এটি স্থির ডেটার জন্য এবং ক্যাশেড হয়ে যায়। আপনার যদি ক্রমাগত ডেটা পরিবর্তন হয় তবে এটি এইভাবে ব্যবহার করা উচিত নয়।
eResferencesInc

1

1) ইন (অ্যাপ্লিকেশন \ সরবরাহকারী \ অ্যাপসোর্সোপ্রাইভাইডার.এফপি)

// in boot function
       view()->composer('*', function ($view) {
            $data = User::messages();
            $view->with('var_messages',$data);
        });

2) আপনার ব্যবহারকারী মডেল

  public static function messages(){ // this is just example
        $my_id = auth()->user()->id;
        $data= Message::whereTo($my_id)->whereIs_read('0')->get(); 
        return $data; // return is required
    }

3) আপনার দৃষ্টিতে

 {{ $var_messages }}

0

লারাভেল 5.6 পদ্ধতি: https://laravel.com/docs/5.6/views#passing-data-to-views

উদাহরণস্বরূপ, সমস্ত দর্শনগুলিতে একটি মডেল সংগ্রহ ভাগ করে নেওয়ার সাথে (অ্যাপসেস্প্রোভাইডার.এফপি):

use Illuminate\Support\Facades\View;
use App\Product;

public function boot()
{
    $products = Product::all();
    View::share('products', $products);

}

2
আপনি যদি খালি ডাটাবেস দিয়ে একটি নতুন অ্যাপ্লিকেশন তৈরি করার চেষ্টা করছেন তবে এটি সমস্যার কারণ হবে।
ক্রিস হারবার্ট

0

আপনার দুটি বিকল্প রয়েছে:

1. অ্যাপ্লিকেশন \ সরবরাহকারী \ অ্যাপসোসভারপ্রোভাইডার বুট ফাংশন মাধ্যমে ভাগ করুন

public function boot() { view()->share('key', 'value'); }

এবং অ্যাক্সেস any কোনও ভিউ ফাইলের কী ভেরিয়েবল।

দ্রষ্টব্য: মনে রাখবেন আপনি এখানে সেশন, অউথ, রুট ডেটা অ্যাক্সেস করতে পারবেন না। আপনি যদি স্ট্যাটিক ডেটা ভাগ করতে চান তবে এই বিকল্পটি ভাল। মনে করুন আপনি বর্তমান ব্যবহারকারী, রুট বা কোনও কাস্টম সেশন ভেরিয়েবলের উপর ভিত্তি করে কিছু ডেটা ভাগ করতে চান তবে আপনি এটি করতে সক্ষম হবেন না।

  1. সহায়ক শ্রেণীর ব্যবহার আপনার অ্যাপ্লিকেশনের যে কোনও জায়গায় একটি সহায়ক শ্রেণি তৈরি করুন এবং এটি কনফিগার ফোল্ডারে অ্যাপ্লিকেশন ফাইলের আলিয়াস অ্যারে রেজিস্টার করুন।

'aliases' => [ ..., 'Helper' => App\HelperClass\Helper::class, ],

এবং অ্যাপ্লিকেশন ফোল্ডারের মধ্যে হেল্পার ক্লাস ফোল্ডারে হেল্পার.এফপি তৈরি করুন

namespace App\HelperClass;

class Helper
{
    public static function Sample()
    {
        //Your Code Here
    }
}

এবং এটি যে কোনও জায়গায় অ্যাক্সেস করুন Helper::Sample()

আপনাকে এখানে আথ, রুট, সেশন বা অন্য কোনও ক্লাস ব্যবহার করতে সীমাবদ্ধ থাকবে না।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.