雄辩事件的多态关系

时间:2017-09-28 17:41:38

标签: laravel eloquent laravel-eloquent

我有2个课程,CoordinateHunt

class Coordinate extends Model {

    public function locatable(){
        return $this->morphTo();
    }
}

class Hunt extends Model {
    public function coordinate() {
        return $this->morphOne('App\Coordinate', 'locatable');
    }
}

然后我使用

创建模型的新实例
$cord = new Coordinate;
$hunt = new Hunt;

$hunt->save();
$hunt->coordinate->save($cord);

现在我收听已保存的Hunt

事件
class HuntSaved {
    use Dispatchable, InteractsWithSockets, SerializesModels;

    public $hunt;

    public function __construct(Hunt $hunt) {
        dd($hunt->coordinate);
        $this->hunt = $hunt;
    }


}

奇怪的是dd在这里返回null 我无法首先保存Coordinate,因为locatable_typelocatable_id在数据库中是not null

我的问题是,如何使用原生口才事件处理已保存的事件并获取相关模型。

1 个答案:

答案 0 :(得分:0)

在您的关系中,您应首先创建坐标,然后创建寻线。

$coordinate->hunt()->create(array());