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>
امیدوارم این آموزش هم مفید و کاربردی واقع شده باشه و لذت برده باشید .