首页 > 解决方案 > 未定义的变量:在 Laravel 中

问题描述

我无法在{!! Form::open(['action' => ['SeatController@book', $seat->id] , 'method' => 'POST'])!!}工作时获得可变座位。这是我的代码:

刀片.php:

@extends('layouts.app')

@section('content')
    <br><br><br>
    <h3>From {{$bus->departdest}} to {{$bus->arrivedest}}</h3>
    <div> Date : {{$bus->date}}</div>
    <div> Boarding Time : {{$bus->depart}}</div>
    <div> Arrival Time : {{$bus->arrival}}</div>
    <div> Plate Number : {{$bus->platenum}}</div>
    <hr>

 <img src="/images/seat.jpg" height="175.5px" width="521.5px" >
 <hr>
    <div> <h3>Available Seats : {{$bus->available}} </h3></div>
    @if ($bus->available>0)
    {!! Form::open(['action' => ['SeatController@book', $seat->id] , 'method' => 'POST'])!!}
    @csrf
        <div class="form-group row">
            <label for="num" class="col-sm-4 col-form-label text-md-right">{{ __('Choose seat') }}</label>
            <div class="col-md-12">
                <select class="form-control{{ $errors->has('num') ? ' is-invalid' : '' }}" name="num">
                @foreach($seats as $seat)
                    @if ($seat->bus_id == $bus->id && $seat->status == 0)
                    <option value="{{ $seat->id }}">{{ $seat->num }}</option>
                    @endif
                @endforeach
                </select>

                @if ($errors->has('num'))
                    <span class="invalid-feedback" role="alert">
                        <strong>{{ $errors->first('num') }}</strong>
                    </span>
                @endif
            </div>
        </div>
        <br>
        {{Form::hidden('_method','POST')}}
        {{Form::submit('Confirm', ['class' => 'btn btn-primary'])}}
        <a href="/search" class="btn btn-primary"> Cancel</a>
    {!! Form::close() !!}
    @else
    <div> No available ticket </div>
    <a href="/search" class="btn btn-primary"> Cancel</a>
    @endif

@endsection

总线控制器.php:

    public function show($id){
    $bus = Bus::find($id);
    $user = Auth::user();
    $seats = Seat::all();
    return view('showseat')->with(compact('bus', 'user', 'seats'));
}

标签: phplaraveleloquent

解决方案


您可能需要在巴士上预订座位?所以在这里:

['SeatController@book', $seat->id]

应该:

['SeatController@book', $bus->id]

$seat当您传递$seats到视图时,您不能使用那里,并且您迭代以在选择元素中显示座位号。

然后在您的book功能中,您仍然可以使用

$request->num // or request('num')

座位号的选择字段num的属性也是如此。name


推荐阅读