多态关系在Laravel流明中不起作用

时间:2019-02-27 15:02:10

标签: laravel lumen

我已经设置了新的lumen v5.7项目并创建了模型,并在模型中定义了多态关系,但是当我获取数据morphTo关系时,我不执行该命令。但是,如果在Laravel完整版项目中使用相同的模型架构,则可以正常工作。但是我必须从事流明项目而不是整个laravel项目。

在管腔中,多态关系有什么作用吗?

细分了模型类型

public function register() {
        Relation::morphMap([
            'media' => \App\Morphic\Media::class,
            'text' => \App\Morphic\Text::class,
        ]);
    }

形态模型

<?php

namespace App\Morphic;

use Illuminate\Database\Eloquent\Model;

class Post extends Model {

    protected $primarykey = 'id';
    protected $table = 'user_posts';

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

    public static function getAllRecords() {
        $result = Post::with('detail')->orderBy('id', 'DESC')->limit(40)->get();
        return $result;

    }

}

发布模型     

use Illuminate\Database\Eloquent\Model;

class Media extends Model {

    protected $primarykey = 'id';
    protected $table = 'media_posts';
    protected $with = ['media'];

    public function media() {
        return $this->hasMany('App\PostMedia','user_post_id');
    }

    public function post() {
        return $this->morphToMany('App\Morphic\Post', 'postable');
    }

}

2 个答案:

答案 0 :(得分:0)

如果您想使用雄辩的ORM,则应取消注释$app->withEloquent()文件中的bootstrap/app.php调用。

答案 1 :(得分:0)

AppServiceProvider需要启用,我使用的是明细关系而不是postable。但是,当我修改这些东西时,关系可以正常工作。