我无法找到在laravel中关联或保存模型时解释的位置仅在外键设置为可为空时才起作用,否则会给我完整性约束违规:1452。我假设把一个外键作为一个不好的习惯,如果我必须处理一对多的关系,那么最好的做法是把它作为一个坏习惯。关联或保存关系仅在Laravel可空时工作
例
$lugarCompra = Input::get('lugar_compra');
$lugarCompra = Lugares_compra::find($lugarCompra);
$tipoPago = Input::get('tipo_pago');
$tipoPago = Tipos_pago::find($tipoPago);
$origen = Input::get('origen');
$fecha_embarque = Input::get('fecha_embarque');
$fecha_embarque = date("Y-m-d", strtotime($fecha_embarque));
$hora_embarque = Input::get('hora_embarque');
$ordenDeCompra = Ordenes_compra::create(array(
'lugar_origen' => $origen,
'fecha_embarque' => $fecha_embarque,
'hora_embarque' => $hora_embarque,
));
$ordenDeCompra->save();
// THIS NOT WORKING, GIVES ME INTEGRITY CONSTRAINT VIOLATION.
$ordenDeCompra = $lugarCompra->ordenesCompra()->save($ordenDeCompra);
$ordenDeCompra = $tipoPago->ordenesCompra()->save($ordenDeCompra);
// THIS ALSO NOT WORKS, GIVES ME INTEGRITY CONSTRAINT...
$ordenDeCompra->lugar_compra()->associate($lugarCompra)->save();
$ordenDeCompra->tipo_pago()->associate($formaPago)->save();
是的,父表中有数据,所以那不是问题。只有在外键可空()时才有效,那么最好的方法是什么?可空对我来说似乎是一个破解... Tnx的回复...
显示错误。不,可空的FK不是一个坏习惯,取决于业务需求。你的问题不是可空字段或不是,但传递给INSERT语句的数据错误 - 很可能你不想在那里传递null,但是你做错了。 – 2014-09-29 18:04:50