2017-06-21 22 views
1

我嘗試將數據從控制器發送到Laravel 5.4上的視圖。Laravel - 無法通過視圖傳遞數據

我的控制器 「PagesController.php」:

public function bird($id) { 

    $infoBirdById = new InfoBird(); 
    $birdById = $infoBirdById->getBirdById($id); 

    $infoHealthById = new InfoHealth(); 
    $healthById = $infoHealthById->getHealthById($id); 

    $infoTransportByIdBird = new InfoTransport(); 
    $transportByIdBird = $infoTransportByIdBird->getTransportByIdBird($id); 

    $infoUserByIdHealer = new InfoUser(); 
    $userByIdHealer = $infoUserByIdHealer->getUserByIdHealer($id); 

    var_dump($userByIdHealer); 
    //var_dump($birdById); 
    //var_dump($healthById); 
    //var_dump($transportByIdBird); 

    return view('pages.bird', compact('birdById', 'healthById', 'userByIdHealer', 'transportByIdBird')); 
} 

視圖 「bird.blade.php」 的提取物:

<div class="block block-name"> 
    <h2>{{ $userByIdHealer->prenom }} {{ $userByIdHealer->nom }}</h2> 
</div> 

以下是錯誤:屬性[prenom]不存在於此收集實例上。

userByIdhealer的轉儲的結果:

object(Illuminate\Support\Collection)[216] 
    protected 'items' => 
    array (size=1) 
     0 => 
     object(stdClass)[223] 
      public 'id_biodiv_acteur' => int 3 
      public 'nom' => string 'Rinaire' (length=7) 
      public 'prenom' => string 'Vété' (length=6) 
      public 'civilite' => string 'Homme' (length=5) 
      public 'date_naissance' => string '2017-05-10' (length=10) 
      ect... 

所以我不明白爲什麼我有這樣的錯誤,因爲在轉儲我可以看到「prenom」在這裏......

感謝您的幫助!

+0

顯示您getUserByIdHealer($ ID);方法 –

+1

'prenom'不是'Collection'上的函數或屬性。因爲'$ userByIdHealer'是一個'Collection',所以你需要循環它,或者使用' - > first()'獲得第一個實例,那麼你應該可以使用' - > prenom'來訪問該屬性。 –

+0

@蒂姆劉易斯明白了!如果你到達一個集合中的許多項目,只需使用' - > get()'而不是' - > first()'。 – ettdro

回答

1
{{ $userByIdHealer[0]->prenom }} {{ $userByIdHealer[0]->nom }} 

你得到它裏面0陣列,所以用這個,也可以循環用foreach和使用無0

+0

你先生,你應該得到一個吻,這是一個很好的答案! – TuxxyDOS

+0

請注意,如果沒有設置$ userByIdHealer [0]',它會拋出一個'嘗試非對象的屬性';在嘗試訪問之前,應該總是使用'isset(...)'進行檢查。 –