我无法弄清楚为什么,但我可以var_dump($ cPage)并获得完整的数组,但我无法在视图中访问我的变量。 {{$ cPage-> code}}总是让我得到一个“Undefined属性:Illuminate \ Database \ Eloquent \ Collection :: $ code”错误。谁能解释我为什么?
控制器:
public function getPages($lang, $slug)
{
$cPage = Page::join('langs', 'langs.id', '=', 'pages.lang_parent_id')
->where('slug', '=', $slug)
->where('code', '=', $lang)
->get();
$mainPages = Page::where('parent_id', null)
->get();
$allPages = $this->getAllPages($mainPages);
return View::make('index')
->with('cPage', $cPage)
->with('mainPages', $mainPages)
->with('allPages', $allPages);
}
查看
<ul class="nav">
<li class="dropdown">
<button type="submit" class="btn dropdown-toggle icon-white" data-toggle="dropdown"> {{ $cPage->code }} <b class="caret"></b></button>
<ul class="dropdown-menu pull-right">
<li><a href="#">Português</a></li>
<li><a href="#">English</a></li>
</ul>
</li>
</ul>
var_dump($cPage)
array(1){[0] =&gt; array(9){[“id”] =&gt; string(1)“1”[“parent_id”] =&gt; NULL [“lang_parent_id”] =&gt; string(1)“1”[“translate_parent_id”] =&gt;空值 [ “标题”] =&GT; string(8)“Clientes”[“slug”] =&gt; string(8)“clientes” [ “排序”] =&GT; NULL [“name”] =&gt; string(10)“Português”[“code”] =&gt; string(2)“pt”}}
答案 0 :(得分:1)
您需要在视图中使用循环,或者如果您只希望获得一个结果,则可以将get
更改为first
:
$cPage = Page::join('langs', 'langs.id', '=', 'pages.lang_parent_id')
->where('slug', '=', $slug)
->where('code', '=', $lang)
->first();