Php Laravel 8-如何将一个表中的值更新为另一个表中的值

Php Laravel 8-如何将一个表中的值更新为另一个表中的值,php,laravel,eloquent,model,Php,Laravel,Eloquent,Model,很抱歉,这个问题可能有点长,我想确保我的问题得到彻底解决 我有一个truck表,它在界面上看起来像这样: 正如你所看到的,我有12号、13号、15号卡车,这个数字还可以继续。至于“数量”列,它表示分配给特定卡车的包裹数量。卡车和包裹表之间存在一对多关系。一辆卡车可以有许多包裹。一个包裹属于一辆卡车 存在一个单独的包页面,用户可以添加新包并将包分配给特定的卡车。这些包裹将自动添加到卡车页面的“数量”列中 包页面在界面上看起来像这样。它仍然是空的,因为还没有记录,这就是我的问题所在 当用户单击新建

很抱歉,这个问题可能有点长,我想确保我的问题得到彻底解决

我有一个truck表,它在界面上看起来像这样:

正如你所看到的,我有12号、13号、15号卡车,这个数字还可以继续。至于“数量”列,它表示分配给特定卡车的包裹数量。卡车和包裹表之间存在一对多关系。一辆卡车可以有许多包裹。一个包裹属于一辆卡车

存在一个单独的包页面,用户可以添加新包并将包分配给特定的卡车。这些包裹将自动添加到卡车页面的“数量”列中

页面在界面上看起来像这样。它仍然是空的,因为还没有记录,这就是我的问题所在

当用户单击
新建包详细信息
按钮时,他们将被引导到以下位置:

如您所见,卡车编号显示在下拉菜单中,数值取自我们上面看到的卡车表

当用户将新卡车数据插入卡车表时,此创建包上的下拉列表应自动更新。我把“10”硬编码到菜单上,因为我在想怎么做。我们应该在列表中看到“12”、“13”和“15”。当用户单击卡车编号时,例如“12”,卡车页面内的数量也应更新

我的卡车和包裹型号:

class Truck extends Model
{
    use HasFactory;
    protected $primaryKey = 'truck_id';
    protected $fillable = ['truck_number', 'no_of_items', 'postman_name', 'date_of_operation', 'status'];
    
     public function Package()
    {
        return $this->hasMany(Package::class);
    }
}

class Package extends Model
{
    use HasFactory;
    protected $primaryKey = 'package_id';

    protected $fillable = ['truck_number', 'package_number', 'destination', 'date_of_operation'];
    
     public function Truck(){
        return $this->belongsTo(Truck::class);
    }

}

我的迁移文件:

Schema::create('trucks', function (Blueprint $table) {
            $table->increments('truck_id');
            $table->string('truck_number')->unique();
            $table->integer('no_of_items')->nullable();
            $table->string('postman_name');
            $table->date('date_of_operation');
            $table->string('status');
            $table->timestamps();
        });

Schema::create('packages', function (Blueprint $table) {
            $table->increments('package_id');
            $table->string('truck_number')->nullable(); 
            $table->foreign('truck_number')->references('truck_number')->on('trucks');
            $table->string('package_number')->unique();
            $table->string('destination');
            $table->date('date_of_operation');
            $table->timestamps();
        });

包的
create.blade.php
文件:

<form method="post" action="{{ route('package.store') }}">
          @csrf
          <div class="form-group">    
              <label for="truck_number">Truck Number</label>
              <select name="truck_number" class="form-control">
              <option> 10 </option>
              </select>
          </div>
          <div class="form-group">
              <label for="package_name">Package Number</label>
              <input type="text" class="form-control" name="package_number"/>
          </div>
          <div class="form-group">
              <label for="destination">Destination</label>
              <input type="text" class="form-control" name="destination"/>
          </div>
          <div class="form-group">
              <label for="date_of_operation">Date of Operation</label>
              <input type="date" class="form-control" name="date_of_operation"/>
          </div>
          
          <div class="row justify-content-center">
          <a href="{{ route('package.index')}}" class="btn btn-primary bg-danger">Return</a>&nbsp;&nbsp;                        
          <button type="submit" class="btn btn-primary text-center bg-success">Save Details</button>
          </div>
      </form>

如何将卡车详细信息页面中的
卡车编号
值连接到包裹详细信息下拉菜单列表中的
卡车编号
值,并使下拉列表在每次分配新的
卡车编号
时自动更新?

我想您正在尝试循环您的卡车ID以填充select HTML元素

尝试将您的刀片更新到此版本

<form method="post" action="{{ route('package.store') }}">
          @csrf
          <div class="form-group">    
              <label for="truck_number">Truck Number</label>
              <select name="truck_number" class="form-control">
              @foreach ($truck_number as $number)
                  <option value="{{$number['truck_number']}}">{{$number['truck_number']}}</option>
              @endforeach

              </select>
          </div>
          <div class="form-group">
              <label for="package_name">Package Number</label>
              <input type="text" class="form-control" name="package_number"/>
          </div>
          <div class="form-group">
              <label for="destination">Destination</label>
              <input type="text" class="form-control" name="destination"/>
          </div>
          <div class="form-group">
              <label for="date_of_operation">Date of Operation</label>
              <input type="date" class="form-control" name="date_of_operation"/>
          </div>
          
          <div class="row justify-content-center">
          <a href="{{ route('package.index')}}" class="btn btn-primary bg-danger">Return</a>&nbsp;&nbsp;                        
          <button type="submit" class="btn btn-primary text-center bg-success">Save Details</button>
          </div>
      </form>

@csrf
卡车号码
@foreach($truck_number作为$number)
{{$number['truck_number']}
@endforeach
包装编号
目的地
作战日期
保存详细信息

为什么
卡车
表上的
卡车
列和
包裹
表上的
包裹
列存在?看起来您正在将它们用作主键。如果是这样,那么为什么不直接使用
truck\u id
package\u id
?@bassxzero我对这两个表使用的主键是
truck\u id
package\u id
。同时,
truck\u number
package\u number
是用户/系统管理员专门定义的唯一列。ID类似于后台数据库,它可以正常工作!:D但显示的值如下所示:
{“$truck\u number”:“12”}
{“$truck\u number”:“13”}
{“$truck\u number”:“15”}
而不仅仅是12、13、15。顺便说一句,这会自动分配包的价值,以特定的卡车以及?非常感谢你,顺便说一句!你救了我!你能告诉我为什么界面上会这样显示吗?谢谢你{code>{$number['truck_number']}}如果有效,我会更新我的答案。是的,有效!阿里加图@穆菲达祖拉問題がない
<form method="post" action="{{ route('package.store') }}">
          @csrf
          <div class="form-group">    
              <label for="truck_number">Truck Number</label>
              <select name="truck_number" class="form-control">
              @foreach ($truck_number as $number)
                  <option value="{{$number['truck_number']}}">{{$number['truck_number']}}</option>
              @endforeach

              </select>
          </div>
          <div class="form-group">
              <label for="package_name">Package Number</label>
              <input type="text" class="form-control" name="package_number"/>
          </div>
          <div class="form-group">
              <label for="destination">Destination</label>
              <input type="text" class="form-control" name="destination"/>
          </div>
          <div class="form-group">
              <label for="date_of_operation">Date of Operation</label>
              <input type="date" class="form-control" name="date_of_operation"/>
          </div>
          
          <div class="row justify-content-center">
          <a href="{{ route('package.index')}}" class="btn btn-primary bg-danger">Return</a>&nbsp;&nbsp;                        
          <button type="submit" class="btn btn-primary text-center bg-success">Save Details</button>
          </div>
      </form>