[Laravel 4] Hoe values in view default maken?

Pagina: 1
Acties:

  • DennusB
  • Registratie: Mei 2006
  • Niet online
Hoi Allemaal,

Ik ben bezig een website in Laravel 4 te ontwikkelen, dat gaat tot nu toe top! Na het inloggen kom je op /dashboard en dat is deze route :

Route::get('/dashboard', array('before' => 'auth', 'uses'=>'DashboardController@ShowDashboard'));

Zoals je ziet ga je dan via de DashBoardController naar ShowDashboard en die dit doet :

code:
1
2
3
4
$user = Auth::user();
        $messages = Message::where('userId', 'LIKE', '%'.Auth::id().'%')->get();
        $data = $user;
        return View::make('dashboard-default')->with('data', $data)->with('messages', $messages);


Dat gaat nog steeds prima. Die $messages gebruik ik vervolgens in de blade template van het dashboard om wat dingen te vullen.
Nu wil ik alleen een 2e route maken, laten we zeggen /dashboard/test die naar een andere controller gaat..... De blade template voor die pagina is als volgt :

code:
1
2
3
4
@extends('dashboard')
@section('content')
Hoi
@stop


Hij extend dus de blade template 'dashboard', maar in deze functie is $messages natuurlijk niet beschikbaar waardoor ik een mooie "Undefined variable: messages" krijg. Weet iemand hoe ik dit slim op kan lossen? Want om in elke functie nou los die messages query te doen is ook niet echt netjes denk ik....
Google en de Laravel documentatie helpen me hier niet mee dus ik hoop dat iemand het hier weet :)

Owner of DBIT Consultancy | DJ BassBrewer


  • dvdheiden
  • Registratie: Maart 2006
  • Laatst online: 24-01 16:38
Dat doe je met View composers. Die worden geladen wanneer een view gerenderd wordt.

Extra uitleg: http://culttt.com/2014/02/10/using-view-composers-laravel-4/

[ Voor 23% gewijzigd door dvdheiden op 08-09-2014 12:23 . Reden: extra uitleg url toegevoegd ]


  • PatrickH89
  • Registratie: November 2009
  • Laatst online: 22-01 22:00
DennusB schreef op maandag 08 september 2014 @ 11:59:

code:
1
2
3
4
$user = Auth::user();
        $messages = Message::where('userId', 'LIKE', '%'.Auth::id().'%')->get();
        $data = $user;
        return View::make('dashboard-default')->with('data', $data)->with('messages', $messages);
Even los van dit probleem: Is er een specifieke reden dat je een LIKE en wildcards gebruikt voor het queryen van die message? Is een where('userId', Auth::id()) niet voldoende?

  • DennusB
  • Registratie: Mei 2006
  • Niet online
PatrickH89 schreef op maandag 08 september 2014 @ 12:24:
[...]


Even los van dit probleem: Is er een specifieke reden dat je een LIKE en wildcards gebruikt voor het queryen van die message? Is een where('userId', Auth::id()) niet voldoende?
Ja, klopt inderdaad. Ik zie net dat ik een oude versie van de file hier had geplakt... was al gefixt ! Sorry.
Even over die view composers, waar moet ik die definiëren?

Owner of DBIT Consultancy | DJ BassBrewer


  • dvdheiden
  • Registratie: Maart 2006
  • Laatst online: 24-01 16:38
Zoals in de documentatie staat:

"Note: There is no convention on where composer classes may be stored."

Je kan ze dus eigenlijk overal zetten. Je naast routes.php en filters.php dus ook composers.php kunnen maken. Vervolgens in app/start/global.php na filters.php ook:

PHP:
1
require app_path().'/composers.php';

[ Voor 16% gewijzigd door dvdheiden op 08-09-2014 12:30 ]


  • Oaquasis
  • Registratie: Oktober 2004
  • Laatst online: 23-01 15:54
Als ik me niet vergis, bevat deze video uitleg over View Composers:
https://laracasts.com/lessons/view-composers

Die hele site is trouwens een aanrader als het om uitleg over laravel gaat :)

  • DennusB
  • Registratie: Mei 2006
  • Niet online
Kijk jongens, daar heb ik wat aan :) Het werkt als een trein! Dankjewel allemaal! Bedankt voor de tip over de website met uitleg ook, die ga k bookmarken :D

Owner of DBIT Consultancy | DJ BassBrewer

Pagina: 1