首先抱歉英语不好) 我是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)
答案 0 :(得分:0)
尝试一下:
$post->seo->first()->title;
或$post->seo()->get()->first()->title;
由于seo()
函数到目前为止只是一个查询而无法使用的原因,您需要像上面那样执行该查询