我有一个带有下拉选项的表单,可以让您为特定模型选择外键 . 顶级选项总是类似的
<option value="">please select</option>
所以当我用表格中的这些数据填充我的模型时,
$booking = new Booking($data);
并尝试保存它,
$booking->save();
它总是失败,因为它违反了FK约束,因为Laravel不够聪明,不能为我取消这个字段 . 因此我想出了这个小小的黑客:
public function save() {
if(!$this->vehicle_id) $this->vehicle_id = null;
if(!$this->driver_id) $this->driver_id = null;
parent::save();
}
但是,没有办法告诉Laravel哪些字段代表FK,如果它们的整数> 0,则应该设置为null?
1 回答
一种可能的解决方案是将set mutators用于所有外键: