我在使用Laravel 4保存多态一对一关系时遇到了一些麻烦,这是我的模型:
namespace App\Models\Proveedores;
class Proveedor extends \Eloquent {
public function proveedorable () {
return $this->morphTo('proveedorable', 'proveedorable_type', 'proveedorable_id');
}
这是具体的模型:
namespace App\Models\Proveedores;
class ProveedorTerminacion extends \Eloquent {
public function proveedor () {
return $this->morphOne ('App\Models\Proveedores\Proveedor', 'proveedorable', 'proveedorable_type', 'proveedorable_id');
}
这样我就会尝试保存与特定Proveedor
模型关联的ProveedorTerminacion
,但出于某种原因,我的表格中会创建ProveedorTerminacion
行,但不会{ {1}}和Laravel不会显示任何错误并返回空响应,这有什么不对?
Proveedor
答案 0 :(得分:12)
关联方法与morphTo无法正常工作,因为它永远不会设置morphable_type,所以不要使用它。我很确定你的代码应该抛出致命的错误。顺便说一下。它需要bugfix。
反过来反转创建关系并在可变形对象的上下文中执行:
$terminador = ProveedorTerminacion::create (Input::all());
$proveedor = new Proveedor;
$proveedor->fill (Input::all());
$terminador->proveedor()->save($proveedor);
我正在修理那个并在经过一些测试之后将PR发送到laravel repo。我会在完成后更新我的答案。