Joa*_*les 2 php laravel eloquent laravel-4
我在与Laravel 4保存多态一对一关系时遇到了一些麻烦,这是我的模型:
namespace App\Models\Proveedores;
class Proveedor extends \Eloquent {
public function proveedorable () {
return $this->morphTo('proveedorable', 'proveedorable_type', 'proveedorable_id');
}
Run Code Online (Sandbox Code Playgroud)
这是具体的模型:
namespace App\Models\Proveedores;
class ProveedorTerminacion extends \Eloquent {
public function proveedor () {
return $this->morphOne ('App\Models\Proveedores\Proveedor', 'proveedorable', 'proveedorable_type', 'proveedorable_id');
}
Run Code Online (Sandbox Code Playgroud)
这种方式我试图保存Proveedor与特定ProveedorTerminacion模型相关联,但由于某种原因,ProveedorTerminacion在我的表中创建了一行,但不是为了Proveedor和Laravel不会显示任何错误并返回空响应,这有什么问题?
$terminador = ProveedorTerminacion::create (Input::all());
$proveedor = new Proveedor;
$proveedor->fill (Input::all());
$proveedor->proveedorable()->associate ($terminador);
$proveedor->save ();
Run Code Online (Sandbox Code Playgroud)
Jar*_*zyk 12
关联方法与morphTo无法正常工作,因为它永远不会设置morphable_type,所以不要使用它.顺便说一句,我很确定你的代码应该抛出致命的错误.它需要bugfix.
而是反转创建关系并在可变形对象的上下文中执行:
$terminador = ProveedorTerminacion::create (Input::all());
$proveedor = new Proveedor;
$proveedor->fill (Input::all());
$terminador->proveedor()->save($proveedor);
Run Code Online (Sandbox Code Playgroud)
经过一些测试后,我正在解决这个问题,然后将一个PR发送到laravel repo.完成后我会更新我的答案.
这是:https://github.com/laravel/framework/pull/4249
| 归档时间: |
|
| 查看次数: |
4813 次 |
| 最近记录: |