Неопределенное свойство: Illuminate \ Database \ Eloquent \ Relations \ MorphMany :: $ title - PullRequest
0 голосов
/ 25 августа 2018

Извините за плохой английский вначале) Я новичок в laravel5 и пытаюсь использовать полиморфные отношения

вот код

class Post extends Model
{


    public function seo()
    {
        return $this->MorphMany('App\Seo' , 'seoable');
    }

}


class Seo extends Model
{
    public function seoble()
    {
        return $this->morphTo();
    }
}

и в представлении я пытаюсь получить данные post seo, как это

$post->seo()->title;

вот моя БД

Schema::create('seos', function (Blueprint $table) {
        $table->increments('id');
        $table->string('title');
        $table->text('keywords');
        $table->text('description');
        $table->string('og_type');
        $table->string('og_title');
        $table->text('og_description');
        $table->integer('seoable_id');
        $table->string('seoable_type');
        $table->timestamps();
    });

но я получил ошибку

Undefined property: 
Illuminate\Database\Eloquent\Relations\MorphMany::$title (View: /Applications/MAMP/htdocs/lblog/resources/views/posts/form.blade.php)

1 Ответ

0 голосов
/ 25 августа 2018

Попробуйте это: $post->seo->first()->title; или $post->seo()->get()->first()->title;

причина, по которой она не работает, потому что функция seo() до сих пор является просто запросом, вам нужно выполнить этот запрос, как описано выше

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...