Laravel 5의 모든 뷰에 데이터 전달
Laravel 5에서는 다양한 방법을 통해 모든 뷰 간의 데이터 공유가 가능합니다.
방법 1: 사용 BaseController
Laravel의 컨트롤러를 확장하는 BaseController 클래스를 만듭니다.
class BaseController extends Controller { public function __construct() { $data = [1, 2, 3]; View::share('data', $data); } }
다른 모든 컨트롤러는 BaseController에서 확장해야 합니다.
class SomeController extends BaseController { // ... }
메서드 2: 필터 사용
app/filters.php 또는 별도의 필터 클래스 파일에서 필터를 사용하세요.
App::before(function($request) { View::share('data', [1, 2, 3]); });
또는 사용자 정의 필터를 정의합니다.
Route::filter('data-filter', function() { View::share('data', [1, 2, 3]); });
Route를 사용하여 특정 경로에 필터를 적용합니다:: filter().
방법 3: 사용 미들웨어
미들웨어를 사용하여 뷰에 데이터 전달:
Route::group(['middleware' => 'SomeMiddleware'], function() { // Routes }); class SomeMiddleware { public function handle($request) { View::share('data', [1, 2, 3]); } }
방법 4: View Composer 사용
View를 사용하여 뷰에 데이터 바인딩 작곡가. 이를 통해 데이터를 특정 보기 또는 모든 보기에 바인딩할 수 있습니다.
데이터를 특정 보기에 바인딩하려면 ViewComposer 클래스를 생성하고 서비스 공급자에 등록하세요.
// ViewComposer use Illuminate\Contracts\View\View; class DataComposer { public function compose(View $view) { $view->with('data', [1, 2, 3]); } } // Service Provider public function boot() { view()->composer('view-name', 'DataComposer'); }
바인딩하려면 모든 뷰에 데이터를 추가하려면 서비스에서 다음 코드를 사용하세요. 공급자:
view()->composer('*', 'DataComposer');
참조:
위 내용은 Laravel 5의 모든 뷰에서 데이터를 어떻게 공유할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!