Laravel根据请求保存多态模型



我有一个多态关系的Likes,可以";VideosPosts。我正在使用API端点来存储类似的内容。

然而,我的LikeController看起来像这样

public function store(StoreLikeRequest $request)
{
$video = Video::find($request->video);
$result = (new StoreVideoLikeAction($video, $request))->handle();
return $result;
}

我的路线是/api/like/store/

我怎么能改变这个功能,使StoreLikeRequest知道什么模型(Post或视频),它是指自动从我的端点,以便我可以将其保存在数据库中?例如,如果我发布一个名为"post_id"的字段;或者"video_id",或者更好的选择是发送一个"id"。字段和"类型"。(模型)字段来解决这个问题?

或者我必须有多个端点,即/api/video/{video}/like?同样的问题是,我仍然需要找出我们目前在StoreLikeRequest中使用/保存的模型。

最终,我想避免使用基于"模型类型"的大型if/switch语句,我想知道是否有一种简单的"laravel"方法来实现这一点。

这应该能帮助你理解最好的方法:

https://laravel.com/docs/8.x/eloquent-relationships one-to-many-polymorphic-relations

相关内容

  • 没有找到相关文章

最新更新