【发布时间】:2016-11-22 05:06:16
【问题描述】:
我有一个名为Template 的model 和一个名为templates 的migration table,并且我在持有的mysql table 中有一个column name 的templatedata JSON 数组,在尝试在 view 中获取 data 时出现错误,
以下是我的控制器:
public function get_template($id)
{
$gettemplate = Template::findOrFail($id);
return view('nitseditor.theme', ['gettemplate' => $gettemplate]);
}
我正在尝试这样获取对象:
@foreach($gettemplate as $template)
<div class="branding">
<h1 class="logo">
<a href="index.html"><img src="{{ URL::asset($template->templatedata.content.logoimage) }}" alt="" width="25" height="26">NitsEditor</a>
</h1>
</div>
@endforeach
以下是我在表格中的JSON format:
[{
"content": {
"logo": {
"logoimage": "img/home/nitseditorlogo.png",
"logolink": "index.html"
},
"pages": [
{"pagename": "Mysite", "pagelink": "index.html"},
{"pagename": "Templates", "pagelink": "templates.html"},
{"pagename": "About Us", "pagelink": "aboutus.html"},
{"pagename": "Contact Us", "pagelink": "contactus.html"}
]
}
}]
我收到以下错误:
试图获取非对象的属性(视图:刀片的位置)
【问题讨论】:
-
当您使用
findOrFail($id)获取它时它只有1 条记录时,您为什么要循环$gettemplate? -
@TheFallen 我是为
pagename和pagelink制作的,我的意思是,我需要循环播放。 -
我的意思是,如果您循环
$gettemplate这是一条记录,您将循环 Template 对象的属性,这些属性不是对象,这就是为什么你得到一个错误。 -
@TheFallen,即使我删除
@foreach并尝试像这样访问$gettemplate->templatedata->content->logo->logoimage我也会遇到同样的错误。 -
请解释什么是templatedata、content、logo、logoimage以及它们与Template对象的关系。
标签: php json laravel laravel-5.2