laravel - 如何在我的 JSON 响应中添加其他属性,并在 laravel 中使用动态值
问题描述
在我的应用程序中,我有一个Posts和一个Reacts表都与关系相关联。
在应用程序中,用户可以对帖子做出反应(喜欢或不喜欢)并检索这个我正在使用这个功能:
public function feed()
{
$posts=Post::with('user')
->with('reacts')
->withCount('comments')
->orderBy('created_at', 'DESC')
->get();
return response()->json(["posts" => $posts]);
}
回应是:
我想在 Posts 对象中为isUserLiked添加一个字段,如果当前经过身份验证的用户喜欢该帖子,那么值对他来说将是 true 或 false,如下所示:
我可以添加一个附加字段,但我如何动态设置该值
这就是我在我的帖子模型中所做的:
protected $appends = ['isUserLiked'];
public function getIsUserLikedAttribute($id)
{
$react=React::where('user_id',auth()->user()->id)->where('post_id',$id)->exists();
return $react;
}
这返回 false,因为我不知道任何传递参数的方法(Post id)。有没有更好的方法可以得到想要的响应?谢谢!
解决方案
public function getIsUserLikedAttribute($id)
{
return React::where('user_id',auth()->user()->id)->where('post_id',$this->id)->exists();
}
推荐阅读
- redis - StackExchange.Redis Timeout 发出高输入流缓冲区
- mongodb - 为什么 mockReturnValueOnce 似乎不起作用?
- google-maps - 以公里为单位的最短距离谷歌地图
- sql - 如何使用触发器向 Oracle 数据库表中的列添加默认值?
- javascript - SVG 的背景混合模式
- python - 没有y坐标位置的箱线图上的pyplot.text()
- selenium-chromedriver - chromedriver 无法在网站中找到 webelement
- python - 如何从 .txt 文件中提取分类数据,使用它在数据框中创建新列
- reactjs - [React-testing-library][FireEvent] 触发点击事件后屏幕不更新
- c# - 如何使用 Azure Function 设置应用设置值?