2016-07-25 10 views
1

Ich habe eine Reihe von HTML-Codes, die in einer foreach statement in views aufgerufen werden, versuche ich array of object Push, um die Ansichten durch controller zu bekommen.Wie man Objekt in Ansichten in Laravel übergeben

Es folgt mein Controller Code:

public function get_template($id) 
{ 
    $template = Template::findOrFail($id); 
    $getplugin = json_decode($template->templatedata); 
    $plugins = Plugin::all(); 
    $userid = $template->user->id; 
    return view('nitseditor.test', ['plugins' => $plugins, 'template'=> $template, 'getplugin' => $getplugin, 'userid' => $userid]); 
} 

In meinem Ansichten ich wie folgt anrufen:

@foreach($getplugin as $renderer) 

    @include('themes.' . $template->theme->name . '.Plugins.' . $plugins->find($renderer)->type . '.' . $plugins->find($renderer)->id, ['content' => $plugins->find($renderer)->userplugins()->whereUserId($userid)->first()->pivot->contents]) 

@endforeach 

Ansichten oder HTML-Code die zu sein sind generiert:

<div id="slideshow"> 
    <div class="revolution-slider"> 
    <ul> 
     <!-- SLIDE --> 
     @foreach($content->slider as $sliders) 
      <li data-transition="{{ $sliders->transition }}" data-slotamount="{{ $sliders->slotamount }}" data-masterspeed="{{ $sliders->masterspeed }}"> 
       <!-- MAIN IMAGE --> 
       <img src="{{ URL::asset($sliders->url) }}" alt=""> 
      </li> 
     @endforeach 
    </ul> 
    </div> 
</div> 

nun einen Fehler Ich erhalte

Der Versuch, Eigentum von Nicht-Objekt (Ansicht zu erhalten: C: \ wamp \ www \ NitsEditor \ resources \ Ansichten \ themes \ Miracle \ Plugins \ Slider \ 2.blade.php) (Ansicht: C: \ wamp \ www \ NitsEditor \ resources \ Ansichten \ themes \ Miracle \ Plugins \ Slider \ 2.blade.php)

Während diedump die folgenden Code ausführen in foreach loop:

foreach ($getplugin as $item){ 

     $plugincontents[] = Plugin::findOrFail($item)->userplugins()->whereUserId($userid)->first()->pivot->contents; 

} 
dd($plugincontents); 

Ich bin in der Lage, die JSON output zu erhalten, die die Informationen dieser bestimmten Ansicht enthält. Wie folgt:

array:2 [▼ 
    0 => "{"slider": [{"url": "img/home/bg.jpg", "slotamount": "7", "transition": "zoomin", "masterspeed": "1500"}, {"url": "img/home/bg2.jpg", "slotamount": "7", "transition": "zoomout", "masterspeed": "1500"}, {"url": "img/home/LOMEg.png", "slotamount": "7", "transition": "slidedown", "masterspeed": "1500"}]}" 
    1 => "{"logo": {"logolink": "index.html", "logoimage": "img/home/nitseditorlogo.png"}, "pages": [{"pagelink": "index.html", "pagename": "Mysite"}, {"pagelink": "templates.html", "pagename": "Templates"}, {"pagelink": "aboutus.html", "pagename": "About Us"}, {"pagelink": "contactus.html", "pagename": "Contact Us"}]}" 
] 

Bitte helfen Sie mir. Vielen Dank.

Antwort

0

Nun, während Gegenprobe tun kam ich zu wissen, dass ich in den Ansichten zu json_decode in meinen Daten benötigen. Ich habe versucht, und erhielt das Ergebnis,

In meiner Ansicht ich json_decode wie dies den Array tat

@foreach($getplugin as $renderer) 

    @include('themes.' . $template->theme->name . '.Plugins.' . $plugins->find($renderer)->type . '.' . $plugins->find($renderer)->id, ['contents' => json_decode($plugins->find($renderer)->userplugins()->whereUserId($userid)->first()->pivot->contents)]) 

@endforeach 

Und schließlich immer die Ergebnisse, wie gewünscht.

1

statt $getplugin = json_decode($template->templatedata); Verwendung $getplugin = json_decode($template->templatedata,true);

+0

Immer noch mit dem gleichen Fehler konfrontiert. –

+2

Wenn Sie ''true' zu' json_decode' hinzufügen, müssten Sie wahrscheinlich auf Ihre Variablen wie '$ sliders [' transition ']' innerhalb Ihrer foreach-Schleife zugreifen, da es kein PHP-Objekt mehr ist. –

+0

@DavidAngel: danke für die Anleitung. Ihr habt mir geholfen, die Antwort zu bekommen. –

Verwandte Themen