抱歉,这个问题可能会有点冗长,我想确保彻底解决我的问题。
我的界面上有一个卡车桌子,看起来像这样:
如您所见,我的卡车号为12、13、15,卡车号可以继续。至于“数量”列,它表示分配给该特定卡车的包裹数量。卡车和包裹表之间存在一对多的关系。一辆卡车可以装很多包裹。一个包裹属于一辆卡车。
存在一个单独的“包裹”页面,供用户添加新包裹并将包裹分配给特定卡车。这些包裹将自动添加到卡车页面的“数量”列中。
“打包”页面在界面上看起来像这样。它仍然是空的,因为还没有记录,这就是我的问题所在。
当用户单击New Package Details
按钮时,他们将被定向到:
如您所见,卡车编号显示在下拉菜单中,其值取自我们上面看到的卡车表。
When user inserts a new truck data into the truck table, the dropdown list on this create Package is supposed to be updated automatically. I hardcoded '10' into the menu because i was trying figure out how to do it. We should be seeing '12', '13', and '15' on this list. And when user click on the truck number, for example '12', the quantity inside the truck page should be updated as well.
My Truck and Package Model:
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);
}
}
My migrations file:
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();
});
package's create.blade.php
file:
<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>
<button type="submit" class="btn btn-primary text-center bg-success">Save Details</button>
</div>
</form>
Package controller:
public function create()
{
$trucks = Truck::all('truck_number');
return view('package.create')->with('truck_number', $trucks);
}
public function store(Request $request)
{
//Validate
$request->validate([
'truck_number' => 'required',
'package_number' => 'required|unique:packages',
'destination' => 'required',
'date_of_operation' => 'required'
]);
$package = Package::create([
'truck_number' => $request->truck_number,
'package_number' => $request->package_number,
'destination' => $request->destination,
'date_of_operation' => $request->date_of_operation
]);
return redirect('package');
}
how do I connect the truck_number
value in Truck Details page to the truck_number
values in Package Details' drop down menu list and make the dropdown list automatically updated everytime a new truck_number
is assigned?
我认为您正在尝试遍历卡车ID以填充选择的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>
<button type="submit" class="btn btn-primary text-center bg-success">Save Details</button>
</div>
</form>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句