Я не могу передать данные для просмотра. Показывать ошибку HTTP 500 в laravel. - PullRequest
2 голосов
/ 19 февраля 2020

Привет, парень, я новичок в laravel, и я пытаюсь показать отзывы пользователей. Теперь я проверил с помощью dd (), и действительно я могу получить эти данные, однако, когда я отправляю их в представление laravel отвечает с ошибкой HTTP 500. Ранее я только отправлял данные врачей, которые работали нормально, но когда я пытался передать отзывы это случилось. Это моя функция профиля показа

     public function profile($id)
    {
    $doctor=Doctor::find($id);
    $reviews=Review::where('doctor_id',$doctor->account_id)->get();

   // dd($doctor,$reviews);
    //  foreach($reviews as $review)
    //  {
    //      dd($doctor,$review);
    //  }
   // dd($reviews);
   // dd(DB::select("select * from reviews where doctor_id='D-1'"));
    //dd(Review::all()->where('doctor_id',$doctor->account_id));
   // $reviews=;
  // $array=['reviews'=>$reviews];
    return View('pages.doctorProfile',['reviews'=>$reviews])->with('doctor',$doctor);
}

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

@foreach($reviews as $review)
    <!-- Comment List -->
    <li>
    <div class="comment">
        <img class="avatar avatar-sm rounded-circle" alt="User Image" src="/storage/images/patients/{{$review->patient->image}}">
        <div class="comment-body">
            <div class="meta-data">
                <span class="comment-author">{{$review->patient->first_name}} {{$review->patient->last_name}}</span>
                <span class="comment-date">{{$review->created_at}}</span>

            </div>
            <div  class="review-count rating">
                <?php $rating=explode('-',$review->rating)  ?>
                @for($i=1;$i<=5;$i++)
                    @for($i=1;$i<=$rating[1];$i++)
                        <i class="fas fa-star filled"></i>
                    @endfor
                    <i class="fas fa-star"></i>
                @endfor
                {{-- <i class="fas fa-star filled"></i>
                <i class="fas fa-star filled"></i>
                <i class="fas fa-star filled"></i>
                <i class="fas fa-star filled"></i>
                <i class="fas fa-star"></i> --}}
            </div>
            <p class="comment-content">
               {{$review->content}}
            </p>
            <div class="comment-reply">
                <a class="comment-btn" href="#">
                    <i class="fas fa-reply"></i> Reply
                </a>

            </div>
        </div>
    </div>
    </li>
    <!-- /Comment List -->
@endforeach

Нужно ли это быстро решить. Пожалуйста, помогите

Ответы [ 3 ]

0 голосов
/ 19 февраля 2020

Если вам нужно указать как $ reviews, так и $ doctor, вы можете сделать это следующим образом:

public function profile($id){
    $data = ['reviews'=>null,'doctor'=>null];
    $doctor = Doctor::find($id);
    $reviews = Review::where('doctor_id',$doctor->account_id)->get();
    $data = ['reviews'=>$reviews,'doctor'=>$doctor];
    return view('pages.doctorProfile',$data);
}
0 голосов
/ 19 февраля 2020
@for($i=1;$i<=5;$i++)
     @for($j=1;$j<=$rating[1];$j++)
          <i class="fas fa-star filled"></i>
     @endfor
     <i class="fas fa-star"></i>
@endfor

изменить i на j, потому что выполняется бесконечное время

Я думаю, что вы рассматриваете

 @for($i=1;$i<=5;$i++)
    <i class="fas fa-star {{ $i<= $rating[1] ? 'failed' : '' }}"></i>
 @endfor
0 голосов
/ 19 февраля 2020

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

$doctor=Doctor::find($id);
$reviews=Review::where('doctor_id',$doctor->account_id)->with('patient')->get();
return view('pages.doctorProfile',['reviews'=>$reviews]);

Я не вижу ничего странного в представлении, проверьте, не приводит ли изменение к работе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...