2016-05-19 15 views
1

laravelを学ぶときに問題があります。私の意見にはmaster.blade.phptop.blade.phpファイルが含まれています。 master.blade.phpには、コンテンツを表示するUIを表示するために@include('top')コマンドを使用しました。しかし、今私はデータベースを取得し、渡す方法を知らないtop.blade.php。私はこれを行うために直接App\Article;に使用されました。誰でも助けてくれますか?ありがとう。データベースからデータを取得し、laravelのブレードテンプレートに表示

Master.blade.php

@include('top') 

Top.blade.phpはあなたのビューにして、データベースのデータを渡すためにコントローラを使用

<?php 
use App\Article; 
$articles = Article::orderBy(DB::raw('RAND()'))->take(1)->get(); 
?> 
@foreach ($articles as $a) 
{{ $a->title }} 
@endforeach 

答えて

1

あなたはこれを行うことができます。

+0

ありがとう@メゼニン。私のtop.blade.phpがすべてのページに表示されたら、私は何をしますか? –

+0

@Dung、これは 'top.blade.php'を含むすべてのビューで動作するはずです –

1

ジュストをファイルファイル、それがあるべき

ArticlesController.php

$articles = Article::orderBy(DB::raw('RAND()'))->take(1)->get(); 
return view('master', compact('articles'); 

これは単なる例ですが、masterに含まれるtop.blade.phpには$ articlesが含まれています。

<?php 
$articles = \App\Article::orderBy(DB::raw('RAND()'))->take(1)->get(); 
?> 

をしかし、それは、モデルやコントローラにデータ・ロジックを維持し、ビューに渡す方が良いでしょう:

+0

ありがとう@Dumas。あなたに従ってください、私はすべてのページでtop.blade.phpを表示するために、すべてのコントローラでtop.blade.phpを表示する必要があります。 –

関連する問題