高级口才/ Laravel问题。无法使用morphMany关系创建MorphPivot类

时间:2018-12-23 22:13:36

标签: laravel laravel-5 eloquent laravel-5.4

我上这堂课。具有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;
    });
});

我明白了。就像没有定义关系一样。

enter image description here

我不知道这是否有事-> https://github.com/laravel/framework/issues/17770

0 个答案:

没有答案