1402/03/05 191 کلمه 1 دقیقه

گسترش Blade Layout

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

در پروژه این درسنامه ما صفحات view نمایش همه، ایجاد و ویرایش برای نقش‌ها و برای دسترسی‌ها خواهیم داشت. ما می‌خواهیم صفحات هردوی آن‌ها از یک layout مشابه استفاده کنند و کد بخش‌های تکراری چندبار نوشته نشود. برای ساخت ساختار layout روش‌های زیادی هست اما در زیر با یک روش خواهیم ساخت.

فایل layout در مسیر زیر خواهد بود:

packages/themahdavi/laravel-permission-editor/resources/views/layouts/app.blade.php:

<!DOCTYPE html>
<html>
	<head>
		<title>Laravel Permission Editor</title>
	</head>
	<body>
		<nav>
			<div>
				Laravel Permission Editor	
			</div>		
			<div>		
				<a href="{{ route('permission-editor.roles.index') }}">Roles</a>		
				<a href="{{ route('permission-editor.permissions.index') }}">Permissions</a>		
			</div>		
		</nav>
		<main>
			@yield('content')
		</main>
	</body>
</html>

توجه: در این فایل تگ‌های غیرضروری و همچنین کلاس‌های tailwindcss به کلی حذف شده است و هدف این درسنامه فقط درک ساختار می‌باشد بعدا می‌توانید براساس پروژه خودتان به آن استایل دهید.

حالا چطور باید از این layout در پروژه استفاده کنیم؟ بسیار ساده است مشابه پسوندی که در service provider تعریف کردیم داخل فایل‌های view استفاده می‌کنیم.

برای صفحه نقش‌ها:

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

@extends('permission-editor::layouts.app')

@section('content')
	Roles: It works with Layout!
@endsection

و همچنین برای صفحه دسترسی‌ها:

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

@extends('permission-editor::layouts.app')

@section('content')
	Permissions: It works with Layout!
@endsection

حالا اگر صفحات را reload کنیم، منوی navigation را بالای صفحات به صورت ثایت خواهیم دید. (دقت کنید ما در این بخش فعلا وارد styles نمی‌شویم.)

صفحه نقش‌ها:

extending-blade-layout

صفحه دسترسی‌ها:

extending-blade-layout-2