2017-08-17 4 views
0

Ich möchte verschachtelte Objekt in Laravel durchlaufen und Werte auf Blade-Datei erhalten.Loop verschachtelte Objekt in Laravel

Beispielobjekt:

[ 
    { 
     "id": 43, 
     "user_id": 2, 
     "event": "updated", 
     "auditable_id": 34, 
     "auditable_type": "App\\Bill", 
     "old_values": { 
      "message": "test messgare", 
      "napprover": "24", 
      "status": "Added" 
     }, 
     "new_values": { 
      "message": "Second Audit", 
      "napprover": "10001", 
      "status": "Bill Processing" 
     }, 
     "url": "http://localhost:8000/admin/bills/34", 
     "ip_address": "127.0.0.1", 
     "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3186.0 Safari/537.36", 
     "created_at": "2017-08-16 18:44:12" 
    }, 
    { 
     "id": 41, 
     "user_id": 2, 
     "event": "created", 
     "auditable_id": 34, 
     "auditable_type": "App\\Bill", 
     "old_values": [], 
     "new_values": { 
      "bill_no": "2017081527", 
      "bill_type": "BILL", 
      "bill_date": "08/15/2017", 
      "vendor_id": "2563582", 
      "priority": "Moderate Priority", 
      "amount": "125245", 
      "message": "test messgare", 
      "initiator": "10001", 
      "napprover": "10003", 
      "tat": "1", 
      "status": "Added", 
      "department": "6", 
      "created_at": "2017-08-15 11:57:45" 
     }, 
     "url": "http://localhost:8000/admin/bills", 
     "ip_address": "127.0.0.1", 
     "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3185.0 Safari/537.36", 
     "created_at": "2017-08-15 11:57:45" 
    } 
] 

Controller:

public function show($id) 
{ 
    $bill = Bill::findOrFail($id); 
    $vendor = $bill->vendor_id; 
    $user = User::where('vendor_id', $vendor)->get(); 
    $all = $bill->audits()->get(); 
    return view('admin.BillDetail', compact('bill','user','all')); 
} 

Blade-Datei:

@foreach($all as $al) 
    @foreach($all as $a) 
    <li>{{$a}}</li> 
    @endforeach 
@endforeach 

ich zugreifen möchten old_values & new_values Objekt

Wie diese Werte in der Schleife erhalten

Antwort

1

Wie ich Ihre Objektprobe sehen old_values & new_values sind einzelnes Objekt nicht ein Array von Objekten, so dass Sie es wie folgt tun:

@foreach($all as $al) 
    @if(isset($al->new_values)) 
    <li>{{$al->new_values->message}}</li> 
    @endif 
@endforeach 

Hinweis: Wenn die Möglichkeit besteht, dass ein leeres oder leeres Objekt vorhanden ist, müssen Sie eine Überprüfung vornehmen, bevor Sie auf eine Eigenschaft des Objekts zugreifen. Andernfalls wird eine Ausnahme ausgelöst.

+0

Dank funktionierte aber nicht diesen Fehler http://prntscr.com/g9xfmw –

+0

Bereits Sie, Sie dort zu überprüfen, müssen gesagt ist, Werte in Array existieren oder auf andere Weise nicht, es wird durch eine Ausnahme. –

+0

Ich habe die Antwort so etwas bearbeitet. –