【问题标题】:how can i check there is an variable laravel?我如何检查是否存在变量 laravel?
【发布时间】:2020-09-25 06:13:47
【问题描述】:

我有这个观点我试图通过$reservations 当数据库中有一些保留时没有错误但是当它为空时我得到错误

未定义变量:reservations(查看:C:\Users\yass\Desktop\E-tourisme-44\E-tourisme-5554\resources\views\moderateur\reservation.blade.php)

模板

<tbody>
                        @if($reservations )

                        @foreach($reservations as $reservation)

                            <tr>      
                                <td> {{$reservation->children}} </td>
                                <td> {{$reservation->checkin}} </td>
                                <td> {{$reservation->checkout}} </td>
                                <td>

                        @endforeach
                       @else
                                    <div>
                                       No Data
                                    </div>
                            @endif

                        </tbody>

这是我的功能

public function index()
{
    $myhotels = hotel::where('created_by', Auth::user()->id)->first();
    if ($myhotels) {
        $reservations = Reservation::where('hotel_id', $myhotels->id)->get();
        return view('moderateur/reservation', compact('reservations'));
    }
    return view('moderateur/reservation');
}

【问题讨论】:

标签: laravel laravel-7


【解决方案1】:

为了让您的代码工作,改为

@if($reservations )

使用

@if(! empty($reservations))

此外,将@if@foreach 结合使用以显示“无数据”,请考虑改用@forelse @empty。文档:https://laravel.com/docs/7.x/blade#loops

【讨论】:

  • 在没有$reservation时仍然会失败
  • @Marcin Orlowski 为什么?不,不会。
【解决方案2】:

尝试:

@if(isset($reservations))

【讨论】:

    【解决方案3】:

    你可以使用

    @isset($reservations)
      //your code
    @endisset
    

    或者你可以这样写代码

    {{ $reservations ?? null }}
    

    【讨论】:

      猜你喜欢
      • 2010-10-25
      • 2018-02-17
      • 1970-01-01
      • 2014-09-08
      • 1970-01-01
      • 2014-01-30
      • 2012-07-05
      • 2018-08-13
      相关资源
      最近更新 更多