【发布时间】:2022-03-31 20:39:49
【问题描述】:
我也是 laravel 的新手。我有一个关于 Eloquent 的问题:
表结构:
User: id, username
Posts: id, user_id, content
Likes: id, likeable_type, likeable_id, user_id
(因为我想让 'Likes' 表也可以为 cmets 扩展。)
Models\Likes.php
class Likes extends Model
public function likeable()
{
return $this->morphTo();
}
模型\Post.php
class Posts extends Model
public function likes()
{
return $this->morphMany("\App\Models\Likes","likeable");
}
当我打电话时
$post = Posts::find($id)->likes()->get();
在我的控制器中,它会像这样返回:
"likes": [
{
"id": 1,
"likeable_type": "App\\Models\\Posts",
"likeable_id": 1,
"user_id": 1,
},
{
"id": 2,
"likeable_type": "App\\Models\\Posts",
"likeable_id": 1,
"user_id": 1,
}]
但是我怎样才能得到这样的结果:
"likes": [
{
"id": 1,
"likeable_type": "App\\Models\\Posts",
"likeable_id": 1,
"user_id": 1,
"username":"chenhui",//join user on user.id = likes.user_id
}...
非常感谢和抱歉我的英语不好!
【问题讨论】:
-
你的 Likes 模型是否有指向用户的关系?
标签: laravel