각 수입품에서 'product_id'인 항목을 추가 할 수 있습니다. 내 질문은 하나의 ID가 아닌 동일한 레코드에 여러 수량의 여러 제품 ID를 추가하는 방법입니다.
Schema::create('imports', function (Blueprint $table) {
$table->id();
$table->bigInteger('supplier_id');
$table->bigInteger('branch_id');
$table->bigInteger('product_id');
$table->bigInteger('quantity');
$table->double('cost',null,2);
$table->timestamps();
});
제어 장치
$import = new Import();
$import->supplier_id = $request->supplier_id;
$import->branch_id = $request->branch_id;
$import->product_id = $request->product_id;
$import->quantity = $request->quantity;
$import->cost = $request->cost;
$import->save();
하나의 가져 오기에 연결된 여러 제품을 추가하려면 one-to-many
관계 를 사용해야 합니다. 이와 같이 모델과 ImportProduct
관계가있는 다른 모델을 만들어야합니다.Import
class ImportProduct extends Model
{
...
function import()
{
return $this->belongsTo(Import::class);
}
...
}
그리고 Import
모델 에서
function products()
{
return $this->hasMany(ImportProduct::class);
}
당신의에서 import_products
마이그레이션 당신은 추가 할 것
...
$table->id();
$table->bigInteger('import_id');
$table->bigInteger('product_id');
$table->bigInteger('quantity');
...
제거 product_id
하고 마이그레이션 quantity
에서 제거 imports
합니다.
이제 컨트롤러 products()
에서 Import
모델의 관계를 사용하여 여러 제품과 함께 하나의 가져 오기를 추가 할 수 있습니다 .
$import = new Import();
$import->supplier_id = $request->supplier_id;
$import->branch_id = $request->branch_id;
$import->cost = $request->cost;
$import->save();
// $import->products()->associate($products);
//foreach ($products as $product) {
// $import_product = new ImportProduct();
// $import_product->import_id = $import->id;
// $import_product->product_id = $product->id;
// $import_product->quantity = $product->quantity;
// $import_product->save();
//}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다