2017-03-22 8 views
0

最初のLaravelプロジェクト。 私は上部の「マスター」層でDB::select声明を発表したが、私は「変数定義されていないメッセージを取得下層からアクセスしたいときLaravel:上から見たときのPHPへのアクセス

マスター層:

<!DOCTYPE HTML> 
    <html class="html"> 
    <head> 
    <?php $options=DB::select('select * from options'); ?> 
     <title>@yield('title')</title> 
     <link href="{{ asset('/css/style.css') }}" rel="stylesheet"> 
     <link href="media/favicon.ico" rel="icon" type="image/x-icon" /> 
     <link href="//netdna.bootstrapcdn.com/bootstrap/3.1.0/css/bootstrap.min.css" rel="stylesheet"> 

     <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.0/js/bootstrap.min.js"></script> 
    </head> 
. 
. 
. 

その他の層:

@extends('layouts.master') 
@section('title', 'Inventory') 
@section('main') 
@parent 
<?php 
$thumbnails=$options[0]->thumbnails; 
?> 
. 
. 
. 

出力:a9ef8ce5f32a32719で

ErrorException 8559f3667e4271b90435dc6.phpライン5: 未定義の変数:オプション(ビュー: /var/www/html/project/laravel/leltar/resources/views/inventory.blade.php)私が間違っていた何

+0

通常、ビュー内にdbクエリなどを含めることはお勧めしません。 – apokryfos

答えて

3

任意のビューで$ options変数にアクセスしたかったようです。すべてのビューで共有することで、それを達成できます。

あなたのApp \プロバイダに次のコードを追加します\ AppServiceProviderboot()機能

View::share('options', DB::select('select * from options')); 

がトップに

use Illuminate\Support\Facades\DB; 

をインポートすることを忘れないでください。

+0

ありがとう、それは解決しました:) – Feralheart

+0

うれしい私は助けることができます:) –

関連する問題