Как отобразить элемент массива для просмотра - PullRequest
0 голосов
/ 11 октября 2018

У меня проблема с видом возврата ('doctor_index', compact ('result') на моем контроллере

вот мой контроллер

public function index()
{

    $data = Auth::user()->patient;

    $data = explode(',', $data);

    foreach ($data as $key => $datas) {

       $result = DB::table('patients')->where('id', $datas)->get();

            foreach ($result as $key => $res) {

                $output = ' <h4><b>'. $res->patient_name .'</b></h4>
                                </p>Birthday: <strong>'. $res->post_date .'</strong>  Age: <strong>'. $res->patients_age .'</strong></p>
                                <p>Address: <strong>'. $res->patient_address .'</strong></p><br><br>';
            }  

         echo $output;

        // return view('doctor_index', compact('output'));
    }
}

сначала я использовал echo $вывод: это то, что он отображал

Вывод echo $ output:

output of echo $output

Теперь, если я использую представление возврата на контроллереон отображает

Вывод обратного представления:

output of the return view

, как вы можете видеть, когда я использую обратный просмотр, он отображает только первоеelement

Мой вопрос заключается в том, как я могу отобразить все элементы в моем представлении, используя возвратное представление

код моего представления:

<div class="col-md-8 col-md-offset-2">
        <div class="panel panel-default">
            <div class="panel-body">

                <div class="col-md-12">
                    <h2><b>{{ Auth::user()->name }} </b></h2>
                      <p>Email: <strong> {{ Auth::user()->email }} </strong></p> 
                </div>
            </div>
        </div>

        <div class="panel panel-default">
            <div class="panel-body">

                <div class="col-md-12">
                    <h3>Patients</h3>
                </div>
                <div class="col-md-12">
                    <div class="container">

                           <?php echo $output ?>
                    </div>
                </div>
            </div>
        </div>
    </div>

1 Ответ

0 голосов
/ 11 октября 2018

С функциями и методами, как только он достигнет оператора return, он не будет проходить через другие циклы.Вместо этого вы должны передать массив в представление и перебрать массив в вашем представлении.Итак, ваш контроллер будет выглядеть примерно так:

public function index()
{

    $data = Auth::user()->patient;

    $data = explode(',', $data);
    $responseData = [];

    foreach ($data as $key => $datas) {

       $result = DB::table('patients')->where('id', $datas)->get();

            foreach ($result as $key => $res) {

                $responseData[] = ' <h4><b>'. $res->patient_name .'</b></h4>
                                </p>Birthday: <strong>'. $res->post_date .'</strong>  Age: <strong>'. $res->patients_age .'</strong></p>
                                <p>Address: <strong>'. $res->patient_address .'</strong></p><br><br>';
            }  
    }

    return view('doctor_index', compact('responseData'))
}

И тогда ваш шаблон blade-сервера будет выглядеть примерно так:

<div class="col-md-8 col-md-offset-2">
        <div class="panel panel-default">
            <div class="panel-body">

                <div class="col-md-12">
                    <h2><b>{{ Auth::user()->name }} </b></h2>
                      <p>Email: <strong> {{ Auth::user()->email }} </strong></p> 
                </div>
            </div>
        </div>

        <div class="panel panel-default">
            <div class="panel-body">

                <div class="col-md-12">
                    <h3>Patients</h3>
                </div>
                <div class="col-md-12">
                    <div class="container">
                           @foreach($responseData as $output)
                               {!! $output !!}
                           @endforeach
                    </div>
                </div>
            </div>
        </div>
    </div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...