반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 인민공원
- 코로나19
- cartalyst
- 보정명령
- 이더리움
- 소액임금체불
- elasticSearch
- 체당금
- Tutorial
- Blade
- javascript
- Eclipse
- Python
- Sentinel
- 당사자표시정정신청서
- 사업자계좌
- as후기
- auth
- Bootstrap
- php
- blockchain
- 개인사업자
- reactnative
- vue
- 홈택스
- win32
- 코로나
- 전자소송
- Java
- Laravel
Archives
- Today
- Total
그냥 사는 이야기
Laravel 5.3 Tutorial for Beginner - View Composers 본문
반응형
Laravel 5.3 Tutorial for Beginner - View Composers
별도의 ServiceProvider 생성
php artisan make:provider ComposerServiceProvider
생성한 Service Provider Class를 등록해준다.
config/app.php
...
App\Providers\ComposerServiceProvider::class,
...
ProfileComposer 생성
Http에 ViewComposers 폴더를 생성하고 ProfileComposer.php 파일을 생성한다.
App/Http/ViewComposers/ProfileComposer.php
<?php
namespace App\Http\ViewComposers;
use Illuminate\View\View;
class ProfileComposer
{
public function composer(View $view)
{
$view->with('married', random_int(0, 1));
$view->with('test', 'say test');
}
}
App/Providers/ComposerServiceProvider.php
...
use View;
...
public function boot()
{
View::composer('pages.profile',
'App\Http\ViewComposers\ProfileComposer');
}
web.php
Route::get('profile', 'PagesController@profile');
PageController.php
public function profile()
{
return view('pages.profile');
}
profile.blade.php
이제 아래처럼 변수 사용이 가능하다.
{{ $married }}
{{ $test }}
하지만 이 변수들은 profile view에서만 가능하다.
settings view에서도 공유
App/Providers/ComposerServiceProvider.php
public function boot()
{
View::composer(['pages.profile', 'pages.settings'],
'App\Http\ViewComposers\ProfileComposer');
}
web.php
Route::get('settings', 'PagesController@settings');
PageController.php
public function settings()
{
return view('pages.settings');
}
settings.blade.php 생성
@extends('layouts.master')
@section('body')
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default">
<div class="panel-heading">Profile</div>
<div class="panel-body">
<p>{{ $married }} </p>
<p>{{ $test }}</p>
<p>{{ $age }}</p>
</div>
</div>
</div>
</div>
</div>
@endsection
추가
만약 ProfileComposer에서 create라는 함수를 추가한다면
App/Http/ViewComposers/ProfileComposer.php
public function create(View $view)
{
$view->with('married', random_int(0, 1));
$view->with('test', 'say test');
}
App/Providers/ComposerServiceProvider.php
public function boot()
{
View::creator(['pages.profile', 'pages.settings'],
'App\Http\ViewComposers\ProfileComposer');
}
'Development > Web' 카테고리의 다른 글
Laravel 5.3 Tutorial for Beginner - Blade subviews (0) | 2020.01.17 |
---|---|
Laravel 5.3 Tutorial for Beginner - Blade layouts (0) | 2020.01.17 |
Laravel 5.3 Tutorial for Beginner - Sharing data with all Views (0) | 2020.01.15 |
Laravel 5.3 Tutorial for Beginner - Mutators & Accessors (0) | 2020.01.14 |
Axis Web Service의 server side 구현 시 spring context 가져오는 법 (0) | 2013.04.19 |
Comments