2016-04-14 17 views
1

Controller-Code:verschachtelten Arrays Zugriff in Laravel Ansicht

public function claims($id) 
    { 
     $claims = Claim::whereBetween('created_at', [ 
          '2016-03-01', 
          '2016-03-31' 
         ])->get(); 

     return View::make('pdfs.view', $claims); 

    } 

Aus meiner Sicht eine Nachricht erhalte ich, dass $claims eine nicht definierte Variable ist.

Ich weiß, dass ich mit einem einzigen Array einfach auf die Array-Eigenschaften zugreifen kann, indem ich eine Variable mit dem gleichen Namen aufrufen. $claims['id] dh würde einfach von $ id

Allerdings kann ich nicht tun mit einem mehrdimensionalen Array, wie $claims nicht

Auch existiert, kann ich nicht die Daten als ein Objekt passieren kann mit ->with('claims' $claims) als ich eine PDF-Erzeugung und Die Bibliothek unterstützt diese Funktion nicht.

Irgendwelche Ideen, wie ich auf die Daten zugreifen kann?

Antwort

2

Da Ihr Array enthält nicht, dass key

return View::make('pdfs.view', $claims); 

stattdessen Sie compact wie als

return View::make('pdfs.view', compact('claims')); 

verwenden können, oder Sie können es etwas zuweisen Ihre Werte zu gleichen Schlüssel wie als

tun müssen
$claims['claims'] = Claim::whereBetween('created_at', [ 
         '2016-03-01', 
         '2016-03-31' 
        ])->get(); 
return View::make('pdfs.view', $claims); 

oder Sie können einfach Larave verwenden ls Art und Weise mit with Variable wie als

return View::make('pdfs.view')->withClaims($claims); 

Hinweis: Während der Zeichenfolge mit compact stellen Sie sicher, Ihre Variablenname muss Spiele

+1

'compact' ist eine Abkürzung für '[ 'Ansprüche'=> $ Ansprüche], nur damit Sie wissen, was hier am Werk ist. Variablen, die auf diese Weise an Ansichten übergeben werden, sollen sich in assoziativen Arrays befinden. – Jeff

+1

Funktioniert perfekt, danke! – user1105056

+0

Froh, dass es dir geholfen hat. @ Benutzer1105056 –

Verwandte Themen