![](/img/trans.png)
[英]SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'teamName' cannot be null
[英]Laravel 6 - SQLSTATE[23000]: Integrity constraint violation: 1048 Column cannot be null
我有一个controller
将输入数据存储到 2 个不同的表中
Controller
public function store(Request $request)
{
$request->validate([
'supplier_id' => 'required',
'transaction_in_date' => 'required|before_or_equal:today',
'device_type_id' => 'required',
'device_brand_id' => '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_id');
$transaction_in->transaction_date = $request->input('transaction_in_date');
$transaction_in->save();
$transaction_in->update(['idTransaction_in' => sprintf('TIN-%04d', $transaction_in->id)]);
foreach ( $transaction_in as $tin) {
$tdin[] = [
'Transaction_in_id' => $transaction_in->id[$tin],
'DeviceType_id' => $transaction_in->device_type_id[$tin],
'DeviceBrand_id' => $transaction_in->device_brand_id[$tin],
'spek_device' => $transaction_in->device_spec[$tin],
'device_price' => $transaction_in->price[$tin],
'device_amount' => $transaction_in->amount[$tin],
'device_total_price' => $transaction_in->total_price[$tin]
];
Transaction_in_detail::insert($tdin);
}
return redirect('/transactionsin')->with('success', 'Transaction success');
}
但是当我使用它时,它给了我这个错误
SQLSTATE[23000]:完整性约束违规:1048 列 'device_price' 不能是 null(SQL:插入
transaction_in_details
(DeviceBrand_id
,DeviceType_id
,Transaction_in_id
,device_price
,device_amount
,spek_device
,device_total_price
)值(?,?,??) ?,?))
Model 1
class Transaction_in extends Model
{
protected $guarded = [];
public function get_suppliers()
{
return $this->belongsTo(Supplier::class, 'Supplier_id');
}
public function get_devicetypes()
{
return $this->belongsToMany(DeviceType::class, 'DeviceType_id');
}
public function get_devicebrands()
{
return $this->belongsToMany(DeviceBrand::class, 'DeviceBrand_id');
}
}
Model 2
class Transaction_in_detail extends Model {
protected $guarded = [];
public function get_transction_in_id()
{
return $this->belongsTo(Transaction_in::class, 'Transaction_in_id');
}
public function get_devicetypes()
{
return $this->belongsToMany(DeviceType::class, 'DeviceType_id');
}
public function get_devicebrands()
{
return $this->belongsToMany(DeviceBrand::class, 'DeviceBrand_id');
} }
您的device_price
列不可为空,即必须为其提供非空值。 你有几个选择:
device_price
可以为空或设置默认值首先,您必须使用composer require doctrine/dbal
安装 dbal ,然后将其添加到新的迁移文件中: $table->decimal('device_price', 11, 2)->default(0)->change();
并运行php artisan migrate
device_price
成为必需,因此它永远不会是 null'device_price' => $transaction_in->price[$tin] ?? 0,
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.