Вызов функции-члена get () в null для функции в модели - PullRequest
0 голосов
/ 09 марта 2019

Я пытаюсь, чтобы кнопка сотрудника показывала текст «Уже зарезервировано», если переменная count ($ bookingRequests) возвращает что-то, и если ничего не отображается, то отображается «Забронируйте меня»

Я получаю ошибку выше.

У меня есть следующие модели и их отношения:

User.php и Bookings.php

Пользователь:

public function bookings() {

        return $this->hasMany('App\Models\Bookings');

}   


public function BookingRequest()

{
    $this->bookings()->where('booking_status','=','confirmed')->get();  


}

Заказы:

public function user(){

    return $this->belongsTo('App\Models\User');

}

Упомянутое выше представление является Employeeblock.blade.php:

       <div class="row no-gutters mb-5 mb-lg-0" style="padding:10px">

                @if(count($bookingRequests))
                    <a href="#" class="btn btn-primary" data- 
                toggle="modal" data-target=“#bookingModal">Already Booked</a>

                @else

                    <a href="#" class="btn btn-primary" data- 
                      toggle="modal" data-target="#bookingModal">Book Me</a>

                @endif

            </div>

, в котором данные передаются на него контроллером SearchController:

следующим образом:

       <?php 
           namespace App\Http\Controllers;

      use DB;
      use Auth;
      use App\Models\Employee;
      use App\Models\User;
      use App\Models\Bookings;
      use Illuminate\Http\Request;

      use GuzzleHttp\Client;
      use Session;

       .
       .
       .
     $bookingRequests=Auth::user()->BookingRequest()->get();

        return view(‘search.results’) 
               ->with('bookingRequests',$bookingRequests)

Results.blade.php выше имеет следующий HTML:

    <div class="panel panel-default">
        <div class="panel-heading"><h3></h3></div>
            <div class="panel-body">
                <div class="row">
                    <div class="col-lg-12">


                            @foreach($Employees as $Employee)

                              @include('user/partials/employeeblock')
                            @endforeach



                    </div>
                </div>
            </div>
        </div>
   </div>

1 Ответ

0 голосов
/ 10 марта 2019

Заменить:

 $bookingRequests=Auth::user()->BookingRequest()->get();
 with
 $bookingRequests=Auth::user()->BookingRequest();

Поскольку ваш метод BookingRequest () уже использует метод -> get () для получения данных из базы данных.

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