Laravel view composer로 논리를 한 군데로 정리해주세요!
이 문장에 관하여
줄거리
당사의 서비스 개발에서 사용자 정보를 공동으로 사용하는 곳이 있습니다. 그 부분이 복잡한 글쓰기로 바뀌었기 때문에 처리를 한 곳으로 정리하고자 합니다.
하고 싶은 일
시도해 본 일
view composer란 무엇입니까?
보기 구성 요소는 보기를 렌더링할 때 호출되는 리셋 또는 클래스 방법입니다.뷰를 렌더링할 때마다 결합할 정보가 있으면 뷰 구성 요소가 논리를 한 위치로 결합하는 데 도움이 됩니다.
처리 이미지 맵
언제 써요?
구현 방법
구현 단계
① 서비스 공급업체 준비
$ php artisan make:provider ViewComposerServiceProvider
서비스 공급자를 생성합니다.
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use View;
/**
* Class ViewComposerServiceProvider
* @package App\Providers
*/
class ViewComposerServiceProvider extends ServiceProvider
{
/**
*
*/
public function boot()
{
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
}
②app/config.등록 php
config/app.php에서 ServiceProvider 등록
<?php
'providers' => [
App\Providers\ViewComposerServiceProvider::class,
],
③ Composer 클래스 제작
"app/Http/ViewComposers"형식으로 디렉터리를 만들고 ViewComposers 디렉터리에 "LayoutComposer.php"를 만듭니다.
<?php
namespace App\Http\ViewComposers\User\Worker;
use Auth;
use Illuminate\View\View;
/**
* Class LayoutComposer
* @package App\Http\ViewComposers\User\Worker
*/
class LayoutComposer
{
/**
* @param View $view
*/
public function compose(View $view)
{
$view->with([
'loginUser' => Auth::user(),
]);
}
}
④ ServiceProvider 설정
보기::composers 방법으로 boot 방법의view에 값을 전달하는 ViewComposer를 지정합니다.
<?php
namespace App\Providers;
use App\Http\ViewComposers\User\Agent as Agent;
use App\Http\ViewComposers\User\FriendRecommendComposer;
use App\Http\ViewComposers\User\Worker as Worker;
use Illuminate\Support\ServiceProvider;
use View;
/**
* Class ViewComposerServiceProvider
* @package App\Providers
*/
class ViewComposerServiceProvider extends ServiceProvider
{
/**
*
*/
public function boot()
{
View::composers([
Agent\LayoutComposer::class => 'agent.*',
Worker\LayoutComposer::class => 'worker.*',
FriendRecommendComposer::class => 'user.friend_recommend.block',
]);
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
}
⑤ 블레이드 파일 수정
$loginUser 변수를 해당 위치에 쓰기
<?php
<div class="user-block">
<div class="img-wrap">
<img src="{{ $loginUser->userProfile->image->url }}" alt="">
</div>
<div class="user-name">{{ $loginUser->userProfile->display_name }}</div>
<div class="user-type">{{ \App\Enums\UserRole::toJapanese($loginUser->userProfile->role) }}</div>
</div>
총결산
참고문
Reference
이 문제에 관하여(Laravel view composer로 논리를 한 군데로 정리해주세요!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/bumptakayuki/items/212ec57ffbfb8e71cb60텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)