دستور Bladelf Directive، ویژگی جدید Laravel 5.5

نویسنده : Admin | تاریخ : ۲۷ آبان, ۱۳۹۶

دستور Bladelf Directive

Laravel 5.5 داکیومنتی رسمی منتشر کرده که در آن چندین ویژگی جدید اضافه شده است. ما در این مطلب قصد داریم یکی از این ویژگی های موجود به نام BladeIf Directive را توضیح دهیم.
در واقع Bladeif یک شرط است، اما اگر شما شرط های بیشتری نیاز داشته باشید لازم نیست که تمامی شرط ها را بنویسید. می توانید یک قطعه کد ساده را در یک جا گذاشته و هر زمان که خواستید از طریق نامش از آن استفاده کنید. برای مثال اگر بخواهید بررسی کنید که کاربری لاگین هست یا خیر و یا ادمین هست ، این امر نیاز به نوشتن دو تا شرط دارد. بنابراین ما می توانیم یکبار شرط را تعریف کرده و با استفاده از نام های شرط های دیگر از آن در فایل Blade استفاده کنیم .

در این بخش ما مثالی از Bladlef Directive را برای شما آورده ایم که شما می توانید نحوه کار کردن آن را فهمیده و در برنامه هایتان از آن استفاده کنید.
اگر شرطی وجود داشته باشد و ما بخواهیم شرط خود را در فایل AppServiceProvider بنویسیم از Blade::if که در laravel 5.5 معرفی شده استفاده می کنیم. بنابراین فایل AppServiceProvider.php را باز کرده و کد زیر را در آن قرار می دهیم.
در این شرط ما چک میکنیم که ابتدا کاربر لاگین هست یا خیر و همچنین ادمین هست یا نه .

app/Providers/AppServiceProvider.php

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Blade;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        Blade::if('is_admin', function () {
            return auth()->check() && auth()->user()->isAdmin();
        });
    }

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

    }
}

استفاده از Blade:

اکنون باید از دستور is_admin در فایل view خود استفاده کنیم. استفاده از این مسئله خیلی ساده است و شما می توانید بارها و بارها فقط با یک نام از آن استفاده کنید. در زیر چگونگی استفاده از این دستور را  می بینید :

resources/views/myblade.blade.php

<!DOCTYPE html>
<html>
<head>
	<title>Laravel 5.5 Example</title>
	<meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>

	<h1>Laravel 5.5 New Feature - BladeIf Directive Example</h1>

	@is_admin
	    <p>User is LoggedIn and Admin.</p>
	@else
	    <p>User is not Logged in.</p>
	@endis_admin

</body>
</html>

امیدوارم این آموزش هم مفید و کاربردی واقع شده باشه و لذت برده باشید .


برچسب‌ها:

مقاله ها