【问题标题】:Undefined variable on call blade view调用刀片视图上的未定义变量
【发布时间】:2019-01-22 11:03:03
【问题描述】:

当我在控制器中调用函数 RoomCheck 中的变量时,我有一个控制器和一个 Bootstrap 模式:

$availableRoomTypes

在刀片视图中,显示此错误:

未定义变量:availableRoomTypes(查看:/var/www/html/viure/Modules/Comprof/Resources/views/public/room-check-modal.blade.php)**

这是我的控制器中的 RoomCheck 功能:

 public function RoomCheck($start, $end)
        {
            if (!$request->wantsJson()) {

                return $request;
            }
            $this->validate($request, [
                'checkIn' => 'required',
                'checkOut' => 'required',
            ]);

            $start = Carbon::parse($request->checkIn);
            $end = Carbon::parse($request->checkOut);

            $start_at = $start->format('Y-m-d');
            $end_at = $end->subDays(1)->format('Y-m-d');

            $roomsTypes = RoomType::all(); 

             $availableRoomTypes  = $roomsTypes->map(function ($type) use ($start, $end) {
                $unavailabilities = Unavailability::whereBetween('date', [$start, $end])
                ->where('room_type_id', $type->id)->get();
                $group = $unavailabilities->groupBy(function ($item) {
                    return $item->room_type_id . '_' . $item->reservation_id;
                });

                $totalReservation = $group->map(function ($query) {
                    return $query->first();
                });

                $type->availableroom = $type->room_count - $totalReservation->sum('quantity');

                return $type;
            });

            return response()->json([
                'date' => $request->checkIn,
                'availableRoomTypes' => $availableRoomTypes,
            ]);
        }

这是我的模态刀片视图:

<div class="modal-body">
      <table class="table">
        <thead>
          <tr>
            <th>Room Type
            @foreach($roomTypes as $roomType)
            <option value="{{ $roomType->id }}" @if (old('room_type_id') == $roomType->id) selected @endif>
              {{ $roomType->name }}
            </option>
          @endforeach
          </th>
            <th width="130">Available Room</th>
            @foreach($availableRoomTypes as $availableRoomTypess)
            <option value="{{ $availableRoomTypes }}" @if (old('availableRoomTypes') == $availableRoomTypes) selected @endif>
              {{ $availableRoomTypes }}
            </option>
          @endforeach
          </tr>
        </thead>
        <tbody>
        </tbody>
      </table>
    </div>

但是当我从同一个控制器中的 Store 函数调用 $roomTypes 时没有错误,但是当我调用 $availableRoomTypes 时,我得到了类似上面的错误。怎么了?

action 表单在 roombook.blade.php 文件中,我的资本引导程序包含在 roombook 文件中,以及路由存储的 action 表单

我怎么了?请帮我。谢谢!

【问题讨论】:

  • 你怎么称呼RoomCheck()行动??!
  • 给出如何调用 RoomCheck() 的代码?
  • 你的函数返回一个json响应,你在哪里返回视图?您需要与视图共享变量。

标签: laravel


【解决方案1】:

您的控制器通常会在调用视图时返回变量,例如:

return view('roombook', ['date' => $request->checkIn,
            'availableRoomTypes' => $availableRoomTypes,]);

【讨论】:

    猜你喜欢
    • 2018-07-24
    • 2014-03-15
    • 2017-08-24
    • 2017-02-08
    • 1970-01-01
    • 2017-02-08
    • 1970-01-01
    • 2017-06-17
    • 2017-11-15
    相关资源
    最近更新 更多