![](/img/trans.png)
[英]how to update value in one column and automaticaly updated another column at different table laravel
[英]Laravel 8 - How to update the value in one table to another table
很抱歉這個問題可能有點冗長,我想確保我的問題得到徹底解決。
我有一個在界面上看起來像這樣的卡車表:
如您所見,我有 12、13、15 號卡車,號碼是 go。 至於“數量”列,它表示分配給該特定卡車的包裹數量。 Truck 和 Package 表之間存在一對多關系。 一輛卡車可以裝很多包裹。 一個package屬於單車。
有一個單獨的 Package 頁面供用戶添加新包裹並將包裹分配給特定卡車。 這些包裹將自動添加到卡車頁面的“數量”欄中。
Package頁面在界面上是這樣的。 它仍然是空的,因為還沒有記錄,這就是我的問題所在。
當用戶點擊New Package Details
按鈕時,他們將被引導至此:
如您所見,卡車編號顯示在下拉菜單中,值取自我們上面看到的卡車表。
當用戶將新卡車數據插入卡車表時,此創建 Package 上的下拉列表應該會自動更新。 我將“10”硬編碼到菜單中,因為我正在嘗試弄清楚如何去做。 我們應該在此列表中看到“12”、“13”和“15”。 當用戶點擊卡車號碼時,例如“12”,卡車頁面內的數量也應該更新。
我的卡車和 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);
}
}
我的遷移文件:
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>
<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');
}
如何將Truck Details頁面中的truck_number
值連接到Package Details下拉菜單列表中的truck_number
值,並使下拉列表在每次分配新的truck_number
自動更新?
我認為您正在嘗試遍歷您的卡車 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>
<button type="submit" class="btn btn-primary text-center bg-success">Save Details</button>
</div>
</form>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.