2016-04-12 28 views
0

Laravelに問題があります。では私は何をしようとしていますか?私はすべての私の例から場所を取得しようとしています。これは実際には動作するので、すべてのサンプルのIDを取得して、プロジェクトの別のテーブルからそのサンプルの場所を探します。 foreachのvar_dumpは私に必要なものを与えます。しかし、私はforeachの外でこのデータが必要です、私は後で私の見解にそれを送る必要があります。しかし、foreach以外の2番目のvar_dumpは、最初のidの位置のみを返します。foreachレベル外の変数を使用

だから私の質問は:foreachの外に完全な$の位置を取得する方法があります。

$ids= DB::table('example') 
      ->select('id') 
      ->get(); 

     foreach($ids as $id) 
     { 
      $locations = example::find($id->id)->locations()->get(); 
      var_dump($locations); 
     } 

     var_dump($locations); 

これが私の見解です:

@foreach($examples as $example) 
    <h1>{{$example->name}}</h1> 
    @foreach($locations as $location) 
    {{$location}} 
    @endforeach 
@endforeach 

私はこのようにそれを印刷し、私はあなたが私の質問を理解してほしい場合、私はアルから場所ごとに$例では$例アルを参照してください。

+0

だから、唯一の場所または指定されたidののためのすべての場所の配列を取得したいですか? –

+0

配列:私はビューでそれをforeachしたい –

答えて

3

このお試しください:次にビューで、あなたは、単に取る

$locations[$example->name] = array_map(function ($id) { 
    return example::find($id->id)->locations()->get(); 
}, $ids); 

// Define locations array 
$locations = []; 

// Then do the following for each example: 

// Define the array for locations of each example outside of the loop 
$locations[$example->name] = []; 

foreach ($ids as $id) { 
    // Add each location to the $locations array 
    $locations[$example->name][] = example::find($id->id)->locations()->get(); 
} 

それとも、もう少し派手な取得したい場合、あなたはarray_map代わりのforeachを使用することができますが各例の右キーからの位置:

@foreach ($examples as $example) 
    <h1>{{ $example->name }}</h1> 
    @foreach ($locations[$example->name] as $location) 
     {{ $location }} 
    @endforeach 
@endforeach 

$example->nameをキーとして使用する必要はありません。ロケーションを取得する各例で一意であることを確認してください。

こちらがお役に立てば幸いです。

+0

これはコントローラの側で働いた。しかし、私は、私は例に場所をリンクしたいビュー内の場所を表示する方法を知りません。私はビューの例をループしたいが、私はちょうど各例の配列から位置を取得することはできません。あなたが私の質問を理解することを願っています –

+0

ビューのコードを質問に追加できますか? –

+0

私は質問を編集しました –

1

$locations配列を作成する必要はありません。あなたはビューの関係をうまく使うことができます。お使いのコントローラで

// whatever your logic is to get the examples 
$examples = example::with('locations')->get(); 

あなたのビューで:

@foreach($examples as $example) 
    <h1>{{$example->name}}</h1> 
    @foreach($example->locations as $location) 
     {{$location}} 
    @endforeach 
@endforeach 
関連する問題