Полиморфные отношения не работают в Laravel Lumen - PullRequest
0 голосов
/ 27 февраля 2019

Я настроил новый проект lumen v5.7 и создаю модели и определяю полиморфные отношения в моделях, но когда я получаю данные, связь morphTo не освобождается.Но когда в проекте полной версии Laravel используется та же модель архитектуры, то все работает нормально.Но я должен работать над проектом в люменах, а не над проектом полного ларавеллы.

Есть ли способ, как полиморфные отношения работают в люменах.

Cutomized тип модели

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 голосов
/ 01 марта 2019

AppServiceProvider необходимо было включить, и я использовал подробное отношение вместо postable.Но когда я изменил эти вещи, отношения работали нормально.

0 голосов
/ 27 февраля 2019

Если вы хотите использовать Eloquent ORM, вы должны раскомментировать $app->withEloquent() вызов в вашем файле bootstrap/app.php.

...