【问题标题】:Access to Auth or Request in Laravel Model在 Laravel 模型中访问 Auth 或 Request
【发布时间】:2020-09-14 11:19:57
【问题描述】:

我有一个商店项目。该项目从基本功能开始,并在每个软件生命周期中成长。最近为用户和分析部署一些定制的趋势在增长。我想为项目添加最喜欢的功能。该项目具有访客模式,未经身份验证的用户可以看到产品。

每个用户都可以选择将产品添加到他/她的收藏夹(在 Auth 之后)。到目前为止,一切都很好。我决定将喜爱的属性附加到产品中。 当我尝试从控制器返回产品作为响应时,麻烦就来了。如果我使用 Auth 中间件,未经身份验证的用户重定向到登录。如果我使用自定义代码,每个带有产品的 API 都应该相应地更改。如果我尝试在产品模型中附加文件,我无权访问 Auth 类,也无权请求产品模型。 有什么办法来处理这种情况?感谢您的帮助。

更新: 我的项目中有很多模型。订单,订单产品,产品,用户,付款,类别,交货,...... 我想要一个名为 Bookmark 的新表,它有两列:user_id 和 product_id。

产品 == 多个 == 书签

用户 == 多个 == 书签

【问题讨论】:

  • 请提供您被卡住的确切位置。有时问题描述没有正确地简要介绍您当前的问题。
  • 我想为每个产品添加收藏夹。为此目的,用户必须经过身份验证。来宾(未经身份验证的)用户也具有相同的 api/控制器。我无法重写所有返回产品的控制器以区分经过身份验证和未经身份验证的用户
  • 你有多少个模型,它们之间的关系是什么?
  • 如果您发布一些代码会有所帮助
  • @DavidEnoma return Product::find($id)->first();它返回一行产品表。如果用户通过身份验证,则应附加书签属性。

标签: laravel model controller laravel-middleware


【解决方案1】:

您可以使用刀片 @auth 指令来检查用户身份验证。

然后进行模板化

{{auth()-> user -> bookmark -> all()}}

如果您在模型中建立了用户和书签之间的一对一关系,这应该可以工作。

【讨论】:

  • 这不是刀片视图。它是一个控制器功能。如果用户未通过身份验证怎么办?
  • 如果用户未通过身份验证,则不会执行。控制器也是一样
猜你喜欢
  • 2022-01-01
  • 2018-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-15
相关资源
最近更新 更多