2014-10-17 85 views
0

我想使用laravel框架返回多個視圖。當我返回變量時,它只通過循環一次,因此頁面上只顯示一個註釋。Laravel返回多個視圖

foreach($index_comments as $comments){ 
         $commentComment = $comments->comment; 

         $index_children = NULL; 
         $getUser = DB::table('users')->where('id', '=', $comments->from_user_id)->get(); 
         foreach ($getUser as $user) { 
          $firstName = $user->first_name; 
          $lastName = $user->last_name; 
         } 
         return View::make('feeds.comments')->with(array(
           'firstName' => $firstName, 
           'lastName' => $lastName, 
           'commentComment' => $commentComment, 
           'index_children' => $index_children 
         )); 

        } 

我只是需要一種方式來返回多個視圖。 感謝您的幫助! Toby。

+1

沒有「返回multiplpe意見」這樣的事情 - 你究竟想達到什麼目的?顯示每個評論的來自用戶的所有評論和名稱? – Quasdunk 2014-10-17 19:57:13

+0

@Quasdunk是的。我的意思是我可以在技術上回應這些值,但我想嘗試使用視圖。我聽說過有關嵌套的觀點,但並不確定如何去做。 – 2014-10-17 19:59:31

回答

2

看來你還不完全理解Laravel和/或PHP的概念。所以讓我們從頭開始:我們要獲取所有評論,輸出評論和撰寫評論的用戶的姓名。

在一個非常基本的水平,我們就可以用查詢生成器抓住它直接從DB:

public function showComments() 
{ 
    $commentData = DB::table('comments') 
     ->join('users', 'users.id', '=', 'comments.from_user_id') 
     ->get(['text', 'firstName', 'lastName']); 

    return View::make('feeds.comments')->with('commentData', $commentData) 
} 

而在你的看法:

@foreach($commentData as $comment) 
    {{ $comment->text }} 
    <br /> 
    written by {{ $comment->firstName }} {{ $comment->lastName }} 
    <hr /> 
@endforeach 

就是這樣。您不會在每次迭代時返回視圖,迭代發生在視圖中。 return語句立即終止函數的執行。如果你在一個循環中返回,它將在第一次迭代時總是退出,這就是爲什麼你只能得到一個結果。

在接下來的步驟中,您應該玩弄Models和Eloquent以獲得更強大和更易讀的數據處理。