当前位置: 首页 > 知识库问答 >
问题:

雄辩:过滤透视表和模型表

温翔宇
2023-03-14

雄辩的关系如下:

商店属于许多商店时代(属于许多)

数据透视表(store\u day\u time\u stores)有一个名为“user\u id”的键,storedaytimes表有一个名为“date”的字段。

我想根据给定的“用户id(来自数据透视表)”和“开始”和“结束”日期(来自storedaytime表)过滤“storedaytimes”中的记录。

我现在的问题是

$storedaytime->stores()
    ->wherePivot('user_id','=',$user)
    ->orderBy('date')
    ->where('date','>=',$start)
    ->where('date','<=',$end)->get();

它产生了一个看起来非常可怕的查询,但它不起作用:

SQLSTATE[42S22]:未找到列:“where子句”中的1054未知列“日期”(SQL:选择stores*,order\u day\u time\u storeorder\u day\u time\u id作为pivot\u order\u day\u time\u id作为pivot\u store\u idorder\u day\u time\u store作为用户id作为用户,时间存储id作为pivot\u-id来自商店的内部连接订单日时间时间商店商店上id=订单日时间商店商店id其中订单日时间商店订单日时间商店为空且订单日时间商店为空4和日期

请帮忙。谢谢:3


共有2个答案

闻人鸿飞
2023-03-14

尝试以下方法

$storedaytime->stores()
    ->wherePivot('user_id','=',$user)
    ->whereBetween('storedaytimes.date', [$start, $end])
    ->orderBy('storedaytimes.date')
    ->get();

建议ORDERBY子句位于SQL语句的末尾,除非您必须事先对日期进行排序。你没有理由这么做,所以把它放在最后。

刘曾琪
2023-03-14

我自己弄明白了:以下查询工作:

$storedaytime ->where('date','>=',$start)
->where('date','<=',$end)
->whereHas('stores',function($q) use($user){
                $q->where('user_id',$user);})
->get();
 类似资料:
  • 我有一个问题,正在寻找一个很好的解决方案。 我有这些db表: 游戏对象 游戏对象属性 游戏\对象\游戏\对象\属性(轴) 游戏对象。php: GameObjectAttribute.php: 现在,我试图获得所有GameObjectType的GameObject,并用透视列值过滤结果。 我在这里使用了一个连接,但是有没有办法用雄辩的关系来做呢? 这将返回给我所有“军队”类型的游戏对象: “game

  • 我有这种多对多的关系Laravel雄辩的关系模型是: 我可以在控制器中执行此操作: 在这里,我只通过直接枢轴关系获得email_subtype_id,但必须做额外的工作来获得相关的电子邮件子类型名称。 我需要获得电子邮件子类型名称[直接]从第三个模型电子邮件子类型关系oneTo很多[有很多和属性到]涉及到枢轴模型与电子邮件子类型模型使用类似的东西: 请帮忙!

  • 我正在使用Laravel5.1进行CMS开发。我有一个简单的帖子结构,用户和用户都可以喜欢帖子。 帖子和用户有多对多关系,并使用数据透视表来表示关系。 职位模型有 用户模型有 我想列出用户的最新活动。例如。 Username1喜欢Post2 Username5喜欢Post9 用户名30喜欢Post25 我知道我必须像这样编写sql查询- 上面的查询工作正常,但有没有办法使用laravel雄辩?

  • 提前感谢您的时间。如果你赶时间,跳到粗体部分。 我有一个以下用例:应用程序的每个用户都使用自己的一组前缀表来创建有说服力的模型(即,对于code_发票使用Invoice.php,对于code_客户使用Client.php)。前缀在用户表中定义(例如users.code)。 在Laravel 5.2中,我已经能够通过在用户登录后读取运行时设置的配置(或会话)变量来轻松设置雄辩模型的$table属性。

  • 我有一个无法解决的问题。我有一个包含TitleID、TextID、ImageID的新闻表。还有三张表格,标题,文本,图片。我想把它们都放在一个模型里。但当我尝试时,得到的结果就像数组中的数组。但我想要的是: 雄辩的ORM对此的反应如下: 数据库结构 新闻= 头衔= 其他表类似于标题表。

  • 我正在尝试使用Laravel雄辩的模型查询多个表,这些模型具有一对一、一对多和多对多的关系。 我有一个表,一个表,一个表和一个透视表。 每个表单有一个品牌和一个用户: 品牌没有任何外键: 用户没有任何外键: 有一个数据透视表可以创建多对多的关系,用于创建拥有许多用户(如品牌成员)的品牌组: 我试图通过直接所有权()或品牌成员身份获取属于用户的所有表单,通过多对多透视表获取用户所属的所有品牌的所有表