>  기사  >  PHP 프레임워크  >  laravel5.5 프레임워크에서 뷰 간에 데이터를 공유하는 방법(코드 포함) 뷰 간에 데이터를 공유하는 두 가지 방법은 무엇입니까?

laravel5.5 프레임워크에서 뷰 간에 데이터를 공유하는 방법(코드 포함) 뷰 간에 데이터를 공유하는 두 가지 방법은 무엇입니까?

不言
不言원래의
2018-08-02 14:11:393358검색

laravel프레임워크에서 뷰 간에 데이터를 공유하는 방법에는 두 가지가 있습니다. 하나는 view Facade share() 메서드를 사용하여 구현되고, 다른 하나는 View Facade Composer() 메서드를 사용하여 구현됩니다. 두 가지 방법? 다음 기사의 내용을 살펴보겠습니다.

먼저 주목해야 할 점은 : View Facade는 IlluminateContractsViewFactory

Viewfacade share() 메소드

의 기본 구현에 액세스하는 데 사용된다는 것입니다. views, this view Facade의 공유 메소드를 사용할 수 있습니다.

1. 일반적으로 apphttpControllersxx 아래에 기본 컨트롤러 BaseController.php를 생성합니다.

ac924c01a08f6900d864ce13cf1f9067initViewShare();    //视图共享数据
    }
    /**
     *  视图共享数据方法
     */
    public function initViewShare()
    {
        view()->share('action_name',get_action_name()); //当前URL的方法器名
     }
}


//视图使用 
//共享视图一般都是在layout中
{{ $action_name }}

get_action_name()은 사용자 정의된 함수입니다.

팁:
appHelpersExtmanFun.php를 생성하고, Composer.json의 자동 로드를 도입합니다.

 "files":[
     "app/Helpers/ExtmanFun.php"
 ]

작포저 덤프-자동 로드를 실행하면 자동으로 로드됩니다.

2, AppServiceProvider 서비스 공급자의 부팅 메서드에서 공유를 호출합니다(또는 생성 새로운 공급자) ()

da2d57d3bdb10de22b42a0069dfc7eb3share('name','共享数据片段');
    }
}

ViewFacade 작곡가() 메서드

뷰 작곡가는 뷰를 렌더링할 때마다 뷰의 데이터를 바인딩해야 하는 경우 콜백 함수 또는 클래스 메서드입니다. 사용자 로그인 정보 등을 볼 수 있습니다. Composer()를 사용하여 로직을 별도의 장소로 구성할 수 있습니다.
이 예에서는 AppServiceProvider 서비스 제공자에 뷰 컴포저를 등록하겠습니다.
제공자 코드는 다음과 같습니다.

cc1a47858451ba5ff0ab8b6b1b5c5200composer(
            //'*', 'App\Http\ViewComposers\AuthComposer'
            //['extman.home, welcome'], 'App\Http\ViewComposers\AuthComposer'
            ['extman.*'], 'App\Http\ViewComposers\AuthComposer'
        );

        //使用基于回调函数
        view()->composer('*',function($view){
            $view->with('user',array('name'=>'test','avatar'=>'/path/to/test.jpg'));
        });
    }
other code
}

뷰 컴포저 등록을 포함하기 위해 새 서비스 제공자를 생성하는 경우 서비스 제공자를 추가해야 합니다. 구성 파일 보기 작성기는 config/app.php의 제공자 배열에 등록되었습니다. AuthComposer@compose 메소드는 extman 디렉토리의 모든 보기가 렌더링될 때마다 실행됩니다.

뷰 컴포저 클래스 AppHttpViewComposersAuthComposer.php

01c01bc34336503a6e00eaa6a82e83a6users = $users;
    }

    //绑定数据到视图
    public function compose(View $view)
    {
        $user_info = \Auth::user();
        $view->with('motto', $user_info);
        $view->with('count', $this->users->count());
    }
}

정의하기 뷰가 렌더링되기 전에 AuthComposer 클래스의 compose 메소드가 호출되고 IlluminateViewView 인스턴스가 메소드에 주입되므로 with 메소드를 사용하여 데이터를 바인딩할 수 있습니다. 보기.

모든 뷰 작곡가는 서비스 컨테이너를 통해 해결되므로 뷰 작곡가의 생성자에 주입해야 하는 종속성을 유형 힌트로 지정할 수 있습니다.

관련 추천 글:

Laravel 뷰와 뷰 Composer_php 인스턴스 간의 공유 데이터에 대한 자세한 설명


Laravel 5 프레임워크에서 뷰로 데이터를 전송하는 방법을 학습하는 Laravel 프레임워크

위 내용은 laravel5.5 프레임워크에서 뷰 간에 데이터를 공유하는 방법(코드 포함) 뷰 간에 데이터를 공유하는 두 가지 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.