【发布时间】:2020-02-23 15:26:53
【问题描述】:
我有一个模型,我打算将输入保存到两个不同的表中,但出现错误
Symfony\Component\Debug\Exception\FatalThrowableError 参数 1 传递给 Illuminate\Database\Eloquent\Builder::create() 必须是 类型数组,给定对象,调用 C:\xampp\htdocs\blog\vendor\laravel\framework\src\Illuminate\Support\Traits\ForwardsCalls.php 第 23 行
第一个表是Transaction_in,第二个表是Transaction_in_detail。我计划使用idTransaction_in 作为两个表之间的连接器,并且该列不是主键(这是一个好习惯)?我可以将输入保存到Transcation_in 表,但仍然无法将输入保存到第二个表,而且我不知道如何将idTransaction_in 列作为连接器。
public function store(Request $request)
{
$request->validate([
'supplier_name' => 'required',
'transaction_in_date' => 'required|before_or_equal:today',
'device_type_name' => 'required',
'device_brand_name' => 'required',
'device_spec' => 'required|max:255',
'price' => 'required',
'amount' => 'required',
'total_price' => 'required',
'keterangan' => 'Nullable',
]);
$transaction_in = new Transaction_in();
$transaction_in->idTransaction_in = "0";
$transaction_in->Supplier_id = $request->input('supplier_name');
$transaction_in->tanggal_transaksi = $request->input('transaction_in_date');
$transaction_in->save();
$transaction_in->update(['idTransaction_in' => sprintf('TIN-%04d', $transaction_in->id)]);
$lastid=Transaction_in::create($transaction_in)->idTransaction_in;
if(count($request->device_type_name)>0){
foreach ($request->device_type_name as $item => $v) {
$data2=array(
'Transaction_in_id' => $lastid,
'DeviceType_id' => $request->device_type_name[$item],
'DeviceBrand_id' => $request->device_brand_name[$item],
'spek_device' => $request->device_spec[$item],
'harga_device' => $request->price[$item],
'jumlah_device' => $request->amount[$item],
'total_harga_device' => $request->total_price[$item]
);
Transaction_in_detail::insert($data2);
}
}
return redirect('/transactionsin')->with('success', 'Transaction success');
}
DeviceType_id 和 Devicebrand_id 是外键。
【问题讨论】:
-
请发布您的迁移表和模型。
Transaction_in和Transaction_in_detail的至少迁移和模型。
标签: php laravel laravel-6 php-7.3