今天我們要來看看blade,不知道你還記不記得,他是我們顯示前端的重要檔案,在我們載的套件中有著一些很方便的小工具,能夠讓你輕鬆地讓網頁變好看。
我們先到resources\views\layouts\app.blade.php
中看看吧。
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="csrf-token" content="{{ csrf_token() }}">
<title>{{ config('app.name', 'Laravel') }}</title>
<!-- Fonts -->
<link rel="preconnect" href="https://fonts.bunny.net">
<link href="https://fonts.bunny.net/css?family=figtree:400,500,600&display=swap" rel="stylesheet" />
</head>
<body class="font-sans antialiased">
<div class="min-h-screen bg-gray-100">
@include('layouts.navigation')
<!-- Page Heading -->
@if (isset($header))
<header class="bg-white shadow">
<div class="max-w-7xl mx-auto py-6 px-4 sm:px-6 lg:px-8">
{{ $header }}
</div>
</header>
<!-- Page Content -->
<main>
{{ $slot }}
</main>
</div>
</body>
</html>
這個檔案和他所放的資料夾有很大的關係,layout他掌管著我們之後要寫的前端樣態,他讓我們之後在寫前端時不用每一個都寫上那長長的html,不用每次都打上head還有一些引入的資料,也可以更方便地使得我們每一個balde都有相同的屬性。
我們可以看到在main中有著{{ $slot }}
,那之後我們就可以使用component將我們想要的內容放進main中顯示了。
例如:
<x-app-layout>
<div>{{ __('Hello World') }}</div>
</x-app-layout>
{{ __('Hello World') }}
這個的用法我們到後面會詳細介紹他的功用,那一定會有人想說,那這樣我們只能放main?如果我還想放header或是footer怎麼辦?難道只能硬寫?
其實你可以看到在layout中也有著{{ $header }}
,又或著你之後想要自己加上:
<footer>
{{ $footer }}
</footer>
那其實我們只需要在之後的blade中為solt取名就可以了,像是:
<x-slot name="header">
<h2>
{{ __('活動列表') }}
</h2>
</x-slot>
//footer也是一樣
<x-slot name="footer">
{{ __('關於我們') }}
</x-slot>
那這樣他們就會被好好地放進你所期望的slot,而其餘沒被取名的slot也會被放在沒有被取名的部分。
其實除了這個slot,我們的套件中還有許多已經幫你定義好的component可以使用,我們可以到resources\views\components
中去看看。
他有許多檔案是我們可以直接使用的,之後我們也會常常用到他所定義的component,當然若是你需要你也可以自己定義component,也可以不使用然後照自己的需求一個個定義所會用到的樣式。
我們可以稍微看看其中的一個檔案,resources\views\components\dropdown-link.blade.php
。
<a {{ $attributes->merge(['class' => 'block w-full px-4 py-2 text-left text-sm leading-5 text-gray-700 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 transition duration-150 ease-in-out']) }}>{{ $slot }}</a>
他有些長,但若是你稍微看一下就可以發現他連樣式都幫你寫好了,這樣你在使用時就會基本的css。
不過其實你早就用過layout中的檔案了,只是那時你可能還不知道那是什麼意思,在第七天時我們有判斷那個人是否登錄,用了@auth
去判斷,並且更改了resources\views\layouts\navigation.blade.php
中的許多程式碼。而他放在layout中也代表著整個網站都適用他的樣式,在經過今天的介紹希望你可以更清楚當時我們所想要傳達的想法。
經過今天不知道你有沒有更期待開始寫網頁了呢?明天我們就要開始寫發表文章的功能了,雖然前方地獄之火炎熱,但希望各位勇者們能夠堅持地走下去啦!那我們明天見,掰掰!