Laravel - 数组中的未定义属性

时间:2014-11-04 18:00:07

标签: arrays variables laravel

我无法弄清楚为什么,但我可以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”}}

1 个答案:

答案 0 :(得分:1)

您需要在视图中使用循环,或者如果您只希望获得一个结果,则可以将get更改为first

$cPage = Page::join('langs', 'langs.id', '=', 'pages.lang_parent_id')
        ->where('slug', '=', $slug)
        ->where('code', '=', $lang)
        ->first();