2014-10-17 3 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 
         )); 

        } 

Мне просто нужен способ возврата нескольких видов. Спасибо за любую помощь! Тоби.

+1

Нет такой вещи, как «возвращение видов мультиплета» - чего именно вы пытаетесь достичь? Показать все комментарии и имя пользователя, из которого каждый комментарий? – Quasdunk

+0

@Quasdunk Да. Я имею в виду, что я могу технически просто откликнуться на значения, но я хочу попробовать использовать View. Я слышал о вложенных взглядах, но не совсем уверен, как это сделать. –

ответ

2

Кажется, что вы еще не совсем поняли понятия Laravel и/или PHP. Итак, давайте начнем с нуля: мы хотим получить все комментарии, вывести комментарий и имя пользователя, написавшего комментарий.

На самом базовом уровне, мы можем просто взять его прямо из БД с построитель запросов:

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 немедленно прекращает выполнение функции. Если вы вернетесь внутри цикла, он всегда выйдет на первую итерацию, поэтому вы получаете только один результат.

На следующем этапе вы должны поиграть с моделями и Eloquent для еще более мощной и удобной обработки данных.

Смежные вопросы