2

前の質問では、生の SQL クエリを実行する必要がありました。

コントローラーでパブリック関数を宣言しました。

public function deaths()
{
    $getdeaths = DB::statement('SELECT * FROM player_deaths ORDER BY time DESC LIMIT 10');
    return View::make('main.latestdeaths')->with('getdeaths', $getdeaths);
}

データ取得時にプレイヤー名を表示したいので、foreach内のビュー内で、SQLクエリを実行してみます。

        @foreach($getdeaths as $getdeath)
    <tr>
        <? $name = DB::select( DB::raw('SELECT name FROM players WHERE id = '$getdeath->player_id'') ) ?>
        <td>{{ $getdeath->player_id }}</td>
        <td></td>
        <td></td>
    </tr>
    @endforeach

$name をエコーし​​ようとすると、変数が定義されていません。

他の方法で解析できますか?

4

3 に答える 3

2

どうぞ :

$getDeaths = DB::table('player_deaths')->orderBy('time','desc')->take(10)->get();
return View::make('main.latestdeaths')->with('getDeaths', $getDeaths);

これにより、時間順に並べられたすべての player_deaths のオブジェクトが得られます。

于 2013-08-17T10:48:37.107 に答える
0

DB::select を使用しているため、レコードを取得するために get() を実行する必要があります。ちなみに、ビューで SQL クエリを作成するのは良くありません。MVC アーキテクチャ パターンを尊重しません。

于 2013-08-16T23:35:08.273 に答える
0

ビューコンポーザーを見てください。基本的には、特定のビュー名がレンダリングされ、ビュー変数を自動的に割り当てるときに呼び出されるフィルターまたはクラス メソッドです。

コンポーザーにクエリを実行し、情報を利用したいビューの Deaths 変数を設定するように指示します。

その後、ビューで変数を割り当てたかのように、変数をループできます。

于 2013-08-17T23:10:17.650 に答える