[Laravel]Meegegeven data-variabele wordt niet herkend

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Martindo
  • Registratie: November 2010
  • Laatst online: 18-06 14:34
Ik ben bezig met het maken van een simpel CMS in Laravel. Wanneer ik in mijn HomeController een view::make aanroep en data meegeef (als [tt]$items[/tt]) en deze vervolgens in de view (home.blade.php) wil aanroepen, zegt Laravel tegen mij dat hij [tt]$items[/tt] niet kent (binnen de view).

Waarom zegt Laravel dit? (Dit is overigens de eerste keer dat ik iets functioneels maak met Laravel)

Onderstaand twee codesnippets en de foutmelding die Laravel mij serveert.

HomeController.php
PHP:
1
2
3
$items = DB::table('posts')->get();
// Get items from database and add to an array of those items
$this->layout->content = View::make('home',$items);


home.blade.php
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@extends('layouts.master')

@section('content')
@foreach($items as $item)
    <article>
        <h2>{{$item->title}}</h2>
        <h3>{{$item->date}}</h3>
        <div class="body">
            {{$item->description_small}}
            <a href="/post/{{$item->id}}">Lees meer</a>
        </div>
    </article>
@endforeach

@stop


Afbeeldingslocatie: http://g2f.nl/0jqmi2x

[ Voor 8% gewijzigd door Martindo op 24-10-2014 20:17 ]


Acties:
  • 0 Henk 'm!

  • naam
  • Registratie: Oktober 2007
  • Laatst online: 12-09 13:07
Laravel herkent op deze manier niet waar die de variabele moet plaatsen.
Deze moet je meegeven als key => value pair, dus in jouw geval zou het worden
PHP:
1
$this->layout->content = View::make('home', array('items' => $items));


Zie ook: http://laravel.com/docs/4.2/responses#views. Zelf gebruik ik overigens meestal de php functie compact, deze maakt van een variabele automatisch een array met een key en een value.

Hiermee zou jouw code dit worden:
PHP:
1
$this->layout->content = View::make('home', compact('items'));

[ Voor 43% gewijzigd door naam op 24-10-2014 20:33 ]


Acties:
  • 0 Henk 'm!

  • Martindo
  • Registratie: November 2010
  • Laatst online: 18-06 14:34
Ooh okay, dat wist ik niet. Bedankt! :) Ik ga dat eventjes proberen.

Edit: Dat werkt, bedankt! :)

[ Voor 22% gewijzigd door Martindo op 24-10-2014 20:37 ]