|
|
1
2
根据提问者的评论进行编辑 :如上所述,您可能需要基于筛选器/搜索访问多个表字段。以下是实现这一目标的一种方法。 在Order.php模型中,执行以下操作:
根据需要添加更多的表联接。 在您的OrdersController中执行以下操作:
现在,您可以显示所有订单,也可以基于多个查询或仅一个查询进行搜索。未经测试,但应有效。 ------------编辑------------ 如果你想获得特定用户的所有订单,我会使用用户id。 在Order.php模型中,执行以下操作:
然后,您可以通过在OrdersController中执行此操作,将您想要的特定用户id传递给此方法:
现在,这是假设在您的视图中,您正在将一个用户id添加到名为“user”的输入的值中。 您还可以通过在Orders.php模型中使用scope方法来扩展getOrdersByUserId()方法,以容纳空白的$userId值,如下所示:
现在在您的控制器中,执行以下操作:
这样做将允许您在OrdersController的索引方法中使用此代码,从而允许您在提供id的情况下显示所有订单或特定用户订单。 编辑 :有一件事我忘了提一下,在生成表单时,在控制器中执行:
然后将此变量传递到视图中,并使用它填充用户选择框。我假设您正在使用一个选择框来选择一个用户。 编辑 :正如@GladToHelp所指出的那样,您可能希望使用Eagle Load Constraints向急切加载的模型添加约束。您可以通过修改Orders.php模型中的getOrdersByUserId()作用域方法来使用用户名:
注释 :这是未经测试的代码。 也就是说,您可以简单地使用:
然后在$user->上的视图中使用foreach循环;订单。 |
|
|
2
1
这是最接近您需要的:扩展模型
更多信息请点击此处: http://forums.laravel.io/viewtopic.php?pid=56659#p56659 |
|
|
3
0
因此,我最终使用了如下JOIN:
上面的例子看起来不错,因为我只连接了两个模型/表。但在我的实际应用程序中,我有5个模型是用Order加载的,而且它确实会让人感到困惑,因为表列名冲突等等。 希望在Eloquent中有一种更简单的方法。 |
|
|
Josjojo · Alpine.js菜单切换问题 1 年前 |