【问题标题】:larevl 8 : foreach inside of foreach id is alwys last id picklaravel 8:foreach id 中的 foreach 始终是最后一个 id 选择
【发布时间】:2021-07-09 05:50:21
【问题描述】:

概览:

我做了一个预订系统,用户可以预订多个约会(基于日期唯一日期),而不是使用该日期,他们可以为所选日期添加时间

这是我的看法

 <form action="{{ route('user.booking') }}" method="POST">
     @csrf
     <div class="row">
         <div class="col-md-6">
             @foreach ($appget as $appdata)
                 <div class="card">
                     <div class="card-header">
                        <b>
                            {{ $appdata->date }}
                        </b>
                        <br>
                            <span class="text-warning">
                                per slot we allow only {{ $appdata->count }} booking
                            </span>
                 </div>
                 {{ $appdata->id }}
                 <div class="card-body">
                     <div class="row">
                        @php
                            $times = DB::table('times')                    ->where('app_id', $appdata->id)->get();
                        @endphp
                        @error('time')
                            <span class="text text-danger">
                                {{ $message }}
                            </span>
                        @enderror
                        @foreach ($times as $item)
                            @php
                                $blocktime = DB::table('bookings')
                                    ->where('app_id', $appdata->id)
                                    ->where('time', $item->time)
                                    ->where('status', 1)
                                    ->get();                
                                $apoiid = DB::table('appointments')->where('id',$appdata->id)->first();
                                $totlal = $appdata->count;
                            @endphp
                            {{-- @if (count($blocktime) < $totlal) --}}
                            <div class="col-md-3" style="padding-bottom: 10px;">
                                <label class="btn btn-outline-primary">
                                    <input type="radio" name="time" value="{{ $item->time }}">
                                        <span>
                                            {{ $item->time }}
                                        </span>
                                        {{-- <input type="text" name="date" value="{{ $appdata->date }}"> --}}
                                </label>
                            </div>
                            {{-- @endif --}}
                        @endforeach
                    </div>
                    <input type="hidden" name="user_id" value="{{ $user->id }}">
                    <input type="hidden" name="app_id" value="{{ $appdata->id }}">
                </div>
            </div>
        @endforeach
    </div>
</form>

解释我在这里做了什么:

第一次我foreach我的指定然后在里面为每个我每次

我的前端是这样的:

你可以看到

2021-04-22 有 2 次 9.00 AM 和 9.30 AM,因为此应用 ID 为 3

2021-04-23 有 2 次上午 10.00 和上午 10.30,此应用 ID 为 4

2021-04-20 没时间这个app id 是5

在我的表单中,我尝试使用以下方式获取此 ID:

<input type="hidden" name="app_id" value="{{ $apoiid->id }}">

但这个值总是传递 5(最后一次约会 id)。

我该如何解决这个问题?

【问题讨论】:

    标签: php laravel foreach laravel-blade


    【解决方案1】:

    问题是,你有一个形式,所以你有 3x name="app_id" 并且总是使用最后一个。我会为每一个新表单创建一个新表单,以便您获得正确的数据。

    <input type="hidden" name="app_id" value="{{ $apoiid->id }}">
    

    【讨论】:

      【解决方案2】:

      这样您就可以将它们全部作为一个数组获取。您还应该编辑其他输入。

      ...
      @foreach ($appget as $key => $appdata)
      ...
      
      ...
      <input type="hidden" name="data[{{$key}}][app_id]" value="{{ $apoiid->id }}">
      ...
      

      【讨论】:

      • 在控制器中我怎样才能得到这个名字?
      • $arr = $request->get('data');您可以使用它来获取所有数组。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-26
      • 2011-03-09
      相关资源
      最近更新 更多