我上这堂课。具有morphedByMany
关系
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class OrdenDeElaboracion extends Model
{
// ... Stuff goes here
/**
* Get all of the model variants that are assigned this production order.
*/
public function variantes()
{
return $this->morphedByMany('App\Variante', 'elaborable')
->withPivot(['cantidad', 'informacion_adicional', 'informacion_adicional_fabricacion', 'informacion_adicional_instalacion'])
->using('App\Elaborable');
}
}
但是现在我希望其他类App\Elaborable
与该类App\Estatus
有关系,因此“可加工(具有详细说明功能的项目)”表上的每个“变量(产品变体)”可能会有一个“状态”(状态)
<?php
namespace App;
use Illuminate\Database\Eloquent\Relations\MorphPivot;
class Elaborable extends MorphPivot
{
// ... more stuff here
/**
* The relations to automatically populate to the model.
*
* @var array
*/
protected $with = ['estatus'];
/**
* Get the status records associated with the order.
*/
public function estatus()
{
return $this->morphMany('App\Estatus', 'modelo');
}
}
但这对我不起作用,我不知道为什么。
MorphPivot
类是从Model
扩展而来的,所以我不知道自己在做什么错
更新:代码示例
Route::get('/get_test', function () {
$orden_de_elaboracion = OrdenDeElaboracion::findOrFail(1);
return $orden_de_elaboracion->variantes->map(function ($variante) {
$newEstatus = new Estatus([]);
$variante->estatus()->save($newEstatus);
return $newEstatus->id;
});
});
我明白了。就像没有定义关系一样。
我不知道这是否有事-> https://github.com/laravel/framework/issues/17770