컴포넌트 생성
컴포넌트를 생성하면 레거시에서 include 하듯이 파일을 다룰 수 있다.
header, footer 또는 Alert, Alarm (Modal) 등 어플리케이션 전반에서 사용되는 파일은 컴포넌트로 생성하는 것을 고려해 보아야 한다.
artisan 으로 Alert 이라는 이름의 컴포넌트를 생성한다.
컴포넌트를 한 번도 생성하지 않았다면 각각의 경로에 폴더까지 생성된다.
$ php artisan make:component Alert
Component created successfully.
$ ll app/View/Components/
total 12
drwxrwxr-x 2 lifelike2 lifelike2 4096 Jun 25 09:49 ./
drwxrwxr-x 3 lifelike2 lifelike2 4096 Jun 25 09:49 ../
-rw-rw-r-- 1 lifelike2 lifelike2 1221 Jun 25 10:51 Alert.php
$ ll resources/views/components/
total 12
drwxrwxr-x 2 lifelike2 lifelike2 4096 Jun 25 09:49 ./
drwxr-xr-x 6 lifelike2 lifelike2 4096 Jun 25 09:49 ../
-rw-rw-r-- 1 lifelike2 lifelike2 963 Jun 25 10:54 alert.blade.php
컴포넌트 파일
Alert.php 파일 render() 메소드에 view 파일로 전달되는 변수를 설정할 수 있다.
<?php
namespace App\View\Components;
use Illuminate\View\Component;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Auth;
class Alert extends Component
{
//
//...(생략)...
//
public function render()
{
$noticeAlert = DB::table('users')
->where('user_id', Auth::user()->user_id)
->first();
return view('components.alert')->with([
'noticeAlert' => $noticeAlert
]);
}
}
view 파일
view 파일에 별칭 태그를 사용하여 렌더링한다.
<!-- 생략 -->
</head>
<body>
@include('partials/header')
<x-alert/> <!-- x-컴포넌트명(소문자) -->
컴포넌트 blade 템플릿
blade 파일은 아래 형식으로 구현하였다.
@if ($noticeAlert->notice_read == 'n')
<div>
<span>읽지 않은 공지사항이 있습니다.</span>
</div>
@endif
참고문헌 및 관련링크
'코딩 > Laravel' 카테고리의 다른 글
라라벨 - 전역변수, 상수 사용 (Config, View, boot) (0) | 2024.06.25 |
---|---|
라라벨 - 파일 업로드 (0) | 2024.06.24 |
laravel - AJAX 전송 시 Content-Type 지정 (Error 405) (0) | 2024.06.24 |
Laravel - MSSQL 서버 연결 실패 오류 SSL routines:tls_process_server_certificate:certificate verify failed (0) | 2023.08.29 |
Laravel - MSSQL 서버 연동 오류 QueryException could not find driver (0) | 2023.08.29 |