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

Laravel 5通过反向查询

苍温文
2023-03-14

我有3个型号:汽车、经销商和省

雄辩的关系如下:

车辆物品至经销商

经销商有很多车辆

该省有许多经销商

经销商所属省份

该省有许多越野车

我想得到一个特定省份的所有车辆,但我的代码需要从车辆型号开始调用,因为我调用了许多车辆过滤器。

我的代码:

    $p = 'Alberta';
    $d = Vehicle::whereHas('province', function($q) use ($p) {
        $q->where('province_name', $p);
        return $q;
    })->get();
    dd($d);

不幸的是,我得到了一个错误

未找到列:“where子句”中的1054个未知列“经销商.省id”(SQL:select*from车辆存在的位置(select*from经销商省id=省id省名=阿尔伯塔省))

但是province_id列确实存在于经销商表中。我怎样才能让它发挥作用?

共有1个答案

韩朝斑
2023-03-14

HasManyThrough关系没有反向关系。您所在的省份可以通过经销商拥有许多车辆,但您的车辆不属于某个省份。您的车辆属于某个省的经销商。

因此,whereHas需要指定嵌套关系:

$p = 'Alberta';
$d = Vehicle::whereHas('dealer.province', function($q) use ($p) {
    return $q->where('province_name', $p);
})->get();
dd($d);
 类似资料:
  • 如果读者做了上一节的练习,就会发现,如果不裁剪梯度,模型将无法正常训练。为了深刻理解这一现象,本节将介绍循环神经网络中梯度的计算和存储方法,即通过时间反向传播(back-propagation through time)。 我们在“正向传播、反向传播和计算图”一节中介绍了神经网络中梯度计算与存储的一般思路,并强调正向传播和反向传播相互依赖。正向传播在循环神经网络中比较直观,而通过时间反向传播其实是

  • 环境 OS:Redhat 7 ReverseProxy:Apache(仅限) 通过:Docker 部署 ====================================================================================================================== 问题: 是否可以在Apache反向代理中进行更改,以便通过

  • 我正在运行Nginx,它被配置为允许我访问另一台服务器上的几个资源,该服务器可用作反向代理。举个例子 到目前为止一切正常。我在Adminer中输入我的DB用户名和密码,问题就开始了。通过检查管理员登录后返回的标题,我注意到它返回了一个 标题。这就是麻烦的根源。在我的浏览器上,这自然会被解释为相对于当前服务器而不是反向代理的含义。我试图破解管理员代码后,找到了一个地方,它有一个位置头,但这只是阻止了

  • 我试图从apache反向代理后面连接到socket.io服务器。我在端口8888上运行apache。nodejs服务器运行在同一台机器的端口9096上。为了进行测试,在我的本地计算机上配置代理,如下所示: 在客户端代码中,我执行如下操作: 如何使它连接到本地主机:8888/some/path/socket.io/1?123983759 ?

  •  创造不息,交付不止 Introduction A quick reference guide (cheat sheet) for Laravel 5.1 LTS, listing artisan, composer, routes and other useful bits of information. We intend to build this Cheat Sheet more asse

  • 问题内容: 我在CSS中使用了两个关键帧动画。一个从左到右移动,另一个使用完全相同的值-但取反。 但是,我想知道是否可能仅使用一个关键帧动画。但是一旦添加,动画就只播放一次。它可能会保存以前使用过的信息。因此:我可以通过某种方式重置此信息吗?还是有可能在不同方向上两次使用一个动画?(不使用JS) 问题答案: 不,没有办法单独使用CSS重新启动动画。您必须使用JavaScript从元素中删除动画,然