Laravel 보기 간 공유 데이터 및 보기 Composer
3956 단어 laravel보기 composer공유 데이터
하나의 보기에 서 지정 한 데 이 터 를 전달 하 는 것 을 제외 하고 모든 보기에 서 같은 데 이 터 를 전송 해 야 할 때 가 있 습 니 다.즉,우 리 는 서로 다른 보기에 서 데 이 터 를 공유 해 야 합 니 다.이 를 실현 하려 면 보기 공장
share
방법 을 사용 해 야 한다.전역 도움말 함수
view
는response
와 유사 하 며,매개 변 수 를 입력 하면Illuminate\View\View
인 스 턴 스 를 되 돌려 주 고,매개 변 수 를 입력 하지 않 으 면Illuminate\View\Factory
인 스 턴 스 를 되 돌려 줍 니 다.그래서 저 희 는 서비스 제공 자의boot
방법 에서 다음 과 같은 방식 으로 보기 간 에 데 이 터 를 공유 할 수 있 습 니 다.
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
//
view()->share('sitename','Laravel ');
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
}
우 리 는routes.php
에서 두 개의 경 로 를 정의 한다.
Route::get('testViewHello',function(){
return view('hello');
});
Route::get('testViewHome',function(){
return view('home');
});
그리고resources/views
디 렉 터 리 아래home.blade.php
보기 파일 을 만 듭 니 다.내용 은 다음 과 같 습 니 다.
{{$sitename}}
보기 파일 을 하나 더 만 듭 니 다:
{{$sitename}}!
브 라 우 저 에서 각각 방문hello.blade.php
과http://laravel.app:8000/testViewHello
하면http://laravel.app:8000/testViewHome
의 값 을 분석 할 수 있 습 니 다.2.보기 Composer
때때로 우 리 는 보기 가 렌 더 링 될 때마다 특정한 데 이 터 를 보기 에 연결 하려 고 합 니 다.예 를 들 어 로그 인 사용자 정 보 를 사용 하려 면 보기 Composer 를 사용 해 야 합 니 다.보기 Composer 는 보기 공장 의 coposer 방법 을 통 해 이 루어 집 니 다.이 방법의 두 번 째 리 셋 매개 변 수 는 컨트롤 러 동작 과 패 킷 함수 두 가지 방식 을 지원 합 니 다.
간단하게 볼 때 저 희 는
$sitename
을 바탕 으로 서비스 제공 자 를 따로 만 들 지 않 습 니 다.여기 서 저 희 는 패 킷 매개 변수(컨트롤 러 동작 참조 보기 문서)를 전달 합 니 다.
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
//
view()->share('sitename','Laravel ');
// Composer
view()->composer('hello',function($view){
$view->with('user',array('name'=>'test','avatar'=>'/path/to/test.jpg'));
});
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
}
보기 파일 수정AppServiceProvider
:{{$sitename}에 오신 것 을 환영 합 니 다!
<h3> </h3>
:{{$user['name']}}<br>
:{{$user['avatar']}}
브 라 우 저 에서 접근hello.blade.php
,출력 내용 은 다음 과 같 습 니 다.
Laravel !
:test
:/path/to/test.jpg
여러 보기 로 데 이 터 를 전달 할 수 있 습 니 다:
view()->composer(['hello','home'],function($view){
$view->with('user',array('name'=>'test','avatar'=>'/path/to/test.jpg'));
});
심지어 모든 보기(어댑터 사용*):
view()->composer('*',function($view){
$view->with('user',array('name'=>'test','avatar'=>'/path/to/test.jpg'));
});
이상 은 Laravel 보기 간 에 데 이 터 를 공유 하고 보기 Composer 의 상세 한 내용 입 니 다.본 고 는 여러분 이 Laravel 을 배 우 는 데 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Laravel - 변환된 유효성 검사 규칙으로 API 요청 제공동적 콘텐츠를 위해 API를 통해 Laravel CMS에 연결하는 모바일 앱(또는 웹사이트) 구축을 고려하십시오. 이제 앱은 CMS에서 번역된 콘텐츠를 받을 것으로 예상되는 다국어 앱이 될 수 있습니다. 일반적으로 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.