gpt4 book ai didi

php - 在 Laravel 4 中保存一对一的多态关系

转载 作者:行者123 更新时间:2023-12-04 15:47:23 25 4
gpt4 key购买 nike

我在使用 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');
}

通过这种方式,我试图保存与特定 ProveedorTerminacion 模型关联的 Proveedor,但由于某种原因,ProveedorTerminacion 的行是在我的表中创建,但不是为 Proveedor 和 Laravel 不会显示任何错误并返回空响应,怎么了?

$terminador = ProveedorTerminacion::create (Input::all());

$proveedor = new Proveedor;
$proveedor->fill (Input::all());

$proveedor->proveedorable()->associate ($terminador);

$proveedor->save ();

最佳答案

关联方法不能与 morphTo 一起正常工作,因为它从不设置 morphable_type,所以不要使用它。顺便说一句,我很确定您的代码应该因此而抛出 fatal error 。它需要错误修复。

相反创建关系并在可变形对象的上下文中执行:

$terminador = ProveedorTerminacion::create (Input::all());

$proveedor = new Proveedor;
$proveedor->fill (Input::all());

$terminador->proveedor()->save($proveedor);

我正在解决这个问题,并会在一些测试后向 laravel 仓库发送一个 PR。完成后我会更新我的答案。

这是:https://github.com/laravel/framework/pull/4249

关于php - 在 Laravel 4 中保存一对一的多态关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23273817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com