2016-07-25 5 views
1

У меня есть набор html-кодов, которые вызывается в foreach statement в views, я пытаюсь нажать array of object, чтобы получить вид через controller.Как пройти объект в представлениях в laravel

Ниже мой контроллер код:

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]); 
} 

В моем виде Я звоню так:

@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 

Просмотров или HTML код которые будучи сгенерировано:

<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> 

Теперь я получаю ошибку

Попытка получить свойство не-объекта (Вид: C: \ WAMP \ WWW \ NitsEditor \ ресурсы \ Views \ темы \ Miracle \ Plugins \ Slider \ 2.blade.php) (Вид: C: \ WAMP \ WWW \ NitsEditor \ ресурсы \ Views \ Themes \ Miracle \ Plugins \ Slider \ 2.blade.php)

При выполнении diedump ниже кода в foreach loop:

foreach ($getplugin as $item){ 

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

} 
dd($plugincontents); 

Я могу получить JSON output, который содержит информацию этого конкретного вида. Как показано ниже:

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"}]}" 
] 

Пожалуйста, помогите мне. Благодарю.

ответ

0

Ну, а делать перекрестные проверки я пришел узнать, что мне нужно json_decode в моих данных в представлениях. Я попробовал и получил результат,

В моих Просмотры я сделал json_decode в массив как это:

@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 

И, наконец, получать результаты, как хотелось бы.

1

$getplugin = json_decode($template->templatedata); вместо использования $getplugin = json_decode($template->templatedata,true);

+0

По-прежнему сталкивается с той же ошибкой. –

+2

Если вы добавите 'true' в' json_decode', вам, вероятно, потребуется получить доступ к вашим переменным типа '$ sliders ['transition']' внутри вашего цикла foreach, поскольку он больше не является объектом PHP. –

+0

@ DavidAngel: спасибо за руководство. Вы, ребята, помогли мне получить ответ. –

Смежные вопросы