【发布时间】:2017-12-16 05:09:52
【问题描述】:
public function featuredimage()
{
return $this->belongsTo(Image::class, 'featured_image_id')->withDefault();
}
这给了我:调用模型 [App\Models\Core\Blog\Post] 上的未定义关系 [featuredimage]。
任何想法为什么?
它应该根据文档工作:
https://laravel.com/docs/5.4/eloquent-relationships#updating-belongs-to-relationships
默认模型
belongsTo 关系允许您定义一个默认模型 如果给定的关系为空,将返回。这个图案是 通常被称为空对象模式,可以帮助删除 在您的代码中进行条件检查。在以下示例中,用户 如果没有附加用户,关系将返回一个空的 App\User 模型 发帖:
public function user() { return $this->belongsTo('App\User')->withDefault(); }
我的 laravel 版本:5.4.27
我有两张桌子:
帖子表和图片表
在 post 表中我这样做:
$table->biginteger('featured_image_id')->nullable()->unsigned();
$table->foreign('featured_image_id')->references('id')->on('images')->onUpdate('cascade')->onDelete('cascade');
【问题讨论】:
-
你能分享你的数据库设计吗?
-
更新了我的问题
-
还有你的图片表?
-
试试这个
return $this->belongsTo(Image::class, 'featured_image_id', 'id')->withDefault(); -
您将
image.php文件放在哪里?