2014-11-04 3 views
0

Я не могу понять, почему, но я могу var_dump ($ cPage) и получить полный массив, но я не могу получить доступ к моей переменной в представлении. {{$ cPage-> code}} allways получает мне ошибку Undefined property: Illuminate \ Database \ Eloquent \ Collection :: $ code. Может ли кто-нибудь объяснить мне, почему?Laravel - Неопределенное свойство в массиве

Контроллер:

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)

массив (1) {[0] => массив (9) {[ "ID"] => string (1) "1" ["parent_id"] => NULL ["lang_parent_id"] => string (1) "1" ["translate_parent_id"] => NULL ["title"] => string (8) «Клиенты» [«slug»] => string (8) «clientes» ["sort"] => NULL ["name"] => string (10) "Português" ["code"] => строка (2) «пт»}}

+0

Try -> первый() вместо get – lukasgeiter

+0

Спасибо, он работал с -> first(). Можете ли вы предложить мне объяснение этому? –

+0

Ваш запрос потенциально возвращает несколько результатов, чтобы получить возврат коллекции (даже если это только один результат). Сначала ограничивает запрос одним результатом и возвращает это – lukasgeiter

ответ

1

вы должны использовать цикл с вашей точки зрения, или если вы ожидаете только один результат, вы можете изменить get в first:

$cPage = Page::join('langs', 'langs.id', '=', 'pages.lang_parent_id') 
     ->where('slug', '=', $slug) 
     ->where('code', '=', $lang) 
     ->first(); 
Смежные вопросы