1402/02/31 268 کلمه 1 دقیقه

بارگیری صفحات Blade

آموزش ساخت پکیج لاراول

در ادامه ساخت پکیج لاراول زمان آن رسیده تا سراغ لود صفحات با استفاده از Blade برویم. در این درس یاد خواهیم گرفت که چطور کلمه "It Works" را از داخل Blade لود کنیم و فایل‌های Blade را داخل service provider ریجیستر کنیم.

ابتدا یک فایل Blade در مسیر زیر ایجاد می‌کنیم:

packages/themahdavi/laravel-permission-editor/resources/views/roles/index.blade.php:

It works from Blade!

حالا نوبت آن شده مسیر فایل ایجاد شده را داخل service provide اضافه کنیم تا تمام Bladeهای داخل آن ریجیستر شوند.

packages/themahdavi/laravel-permission-editor/src/PermissionEditorServiceProvider.php:

class PermissionEditorServiceProvider extends ServiceProvider
{
	public function boot()
	{
		Route::prefix('permission-editor')->group(function () {
		
			$this->loadRoutesFrom(__DIR__ . '/../routes/web.php');
		
		});
		
		$this->loadViewsFrom(__DIR__ . '/../resources/views', 'permission-editor');	
	}
}

به ورودی دوم تابع ()loadViewsFrom دقت کنید که مقدار 'permission-editor' دارد. برای اینکه Viewها داخل کنترلر لود شوند به این پسوند namespace نیاز داریم.

برای اینکه View را داخل کنترلر لود کنیم به کد زیر دقت کنید:

packages/themahdavi/laravel-permission-editor/src/Http/Controllers/RoleController.php:

namespace themahdavi\LaravelPermissionEditor\Http\Controllers;

use Illuminate\Routing\Controller;

class RoleController extends Controller
{
	public function index()
	{
		return view('permission-editor::roles.index');
	}
}

پسوند ::permission-editor قبل از اسم Blade همان مقداری است که در ورودی دوم تابع ()loadViewsFrom نوشتیم. دقت کنید این مقادیر باید عین هم باشند.

بعد از تنظیم موارد بالا مرورگر خود را رفرش کنید ... load-blade-views

برای اینکه بخش دسترسی‌ها را مشابه نقش‌ها داشته باشیم نیاز به کنترلر و مسیر داریم. در انتهای این درس دو فایل زیر ایجاد می‌شوند:

packages/themahdavi/laravel-permission-editor/src/Http/Controllers/PermissionController.php:

namespace themahdavi\LaravelPermissionEditor\Http\Controllers;

use Illuminate\Routing\Controller;

class PermissionController extends Controller
{
	// Only this index for now: will show you why, in a minute
	public function index()
	{
		return view('permission-editor::permissions.index');
	}
}

packages/themahdavi/laravel-permission-editor/routes/web.php:

use themahdavi\LaravelPermissionEditor\Http\Controllers\RoleController;
use themahdavi\LaravelPermissionEditor\Http\Controllers\PermissionController;
use Illuminate\Support\Facades\Route;

Route::resource('roles', RoleController::class);

Route::resource('permissions', PermissionController::class);