2017-02-13 6 views
0

配列から特定の値を表示する簡単な方法を探しています。ここでは、プロジェクトの背景と私が達成しようとしていることが少しあります。配列から特定の値を表示する - Laravel

背景

私はこの配列{{ dd($stories) }}ダンプ:

:私は 'is_draft' = 0が雄弁使用して最初の7(7)の項目を取得するために、SQLクエリを設定することができました

Collection {#240 ▼ 
    #items: array:7 [▼ 
    0 => Story {#241 ▼ 
     #table: "stories" 
     #fillable: array:7 [▶] 
     #connection: null 
     #primaryKey: "id" 
     #keyType: "int" 
     +incrementing: true 
     #with: [] 
     #perPage: 15 
     +exists: true 
     +wasRecentlyCreated: false 
     #attributes: array:10 [▼ 
     "id" => 17 
     "title" => "Some New Post" 
     "slug" => "some-new-post" 
     "category_id" => 8 
     "is_draft" => 0 
     "feat_image" => null 
     "body" => """ 
      <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas non sagittis ipsum. Vivamus tristique, purus ut accumsan blandit, lorem turpis pellentesque ▶ 
      <p>Nulla nec dignissim odio. Curabitur sodales ullamcorper sapien ac tristique. Ut condimentum sodales sem, in pretium felis efficitur quis. Proin rhoncus a ips ▶ 
      <p>Nulla facilisi. Suspendisse nec nisl tristique, consectetur nibh et, sollicitudin ligula. Aliquam erat volutpat. Nunc et mauris vehicula nibh rutrum viverra. ▶ 
      <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In hac habitasse platea dictumst. Nulla auctor massa faucibus elit semp ▶ 
      <p>Maecenas congue mi sapien, eu dictum elit vestibulum quis. Aenean scelerisque iaculis turpis, sed dictum nisi lobortis at. Quisque justo ante, dapibus vel ia ▶ 
      """ 
     "excerpt" => "Some excerpt for all to see" 
     "created_at" => "2017-02-12 23:00:35" 
     "updated_at" => "2017-02-12 23:00:35" 
     ] 
     #original: array:10 [▶] 
     #casts: [] 
     #dates: [] 
     #dateFormat: null 
     #appends: [] 
     #events: [] 
     #observables: [] 
     #relations: [] 
     #touches: [] 
     +timestamps: true 
     #hidden: [] 
     #visible: [] 
     #guarded: array:1 [▶] 
    } 
    1 => Story {#242 ▶} 
    2 => Story {#243 ▶} 
    3 => Story {#244 ▶} 
    4 => Story {#245 ▶} 
    5 => Story {#246 ▶} 
    6 => Story {#247 ▶} 
    ] 
} 

$content['stories'] = Story::where('is_draft', '=', 0) 
      ->orderBy('created_at', 'desc') 
      ->take(7) 
      ->get(); 

今、問題は、私はこの配列から静的にデータを出力したいと思います。たとえば:

<span class="grid single">{{ $story[0]->title }}</span> 
<span class="grid double">{{ $story[1]->title }}</span> 

は出力

<span>Some New Post</span> 
<span>Another Post</span> 

私は、構文が何であるかをループに配列を設定するだけで要求されたアイテムを表示するかどうかはわかりません必要があります。私はそれがforeachループとおそらくwhileループがネストされている必要があると確信しています。構文が不明です。どんなアイディアですか?

+0

インデックスは 'された状態で物語 'は' $ stories [0] - > title'であってはなりませんか? –

+0

@RossWilsonこれは動作します。 '$ stories [0] - > title'を使うことができました。あなたの助けをありがとう! – sogeniusio

答えて

0

すでに項目の正確なリストを(私はそれこの例では$storiesと呼ばれてきた)している場合、あなたは、単にLaravelブレードの@foreachディレクティブを使用して、そのリスト上でループする必要があります。

@foreach ($stories as $story) 
<span>{{ $story->title }}</span> 
@endforeach 
+0

混乱して申し訳ありませんが、私は元の投稿を編集しました。ループを繰り返して、特定の値を取得してHTMLページのさまざまな部分に配置したいと、私は付け加えました。上の例では、すべてのストーリーをループし、ストーリーデータをグリッドに配置します。グリッドには異なるクラスが追加されます(動的にではありませんが、私はオプションを探求しています)。したがって、 'foreach'が実際に私のために働きます。 – sogeniusio

+0

@ sogen1usあなたがしようとしていることはまだ明確ではありません。そして '$ stories [0] - > title'は動かないのですか?あなたがあなたの質問にもっと具体的であれば、私は助けることができるかもしれません。 – mopo922

+0

問題があったので、私はforeachを使っていました。私は@ mopo922が提案するようにそれを使用する必要はなかった、私がする必要があるのは、配列の項目を直接参照することです。皆さんありがとう! – sogeniusio

関連する問題