未定义的属性:Illuminate \ Database \ Eloquent \ Relations \ MorphMany :: $ title

时间:2018-08-24 21:19:58

标签: php laravel eloquent

首先抱歉英语不好) 我是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 :(得分:0)

尝试一下: $post->seo->first()->title;$post->seo()->get()->first()->title;

由于seo()函数到目前为止只是一个查询而无法使用的原因,您需要像上面那样执行该查询