问题标签 [laravel-eloquent]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
851 浏览

sql-server - Laravel 5.3 Eloquent working with SQL Server Varbinary data

I have two models with the same ID key that is a Varbinary(18) datatype in SQL Server. I am having trouble finding a way to deal with this datatype. I believe the main issue is that eloquent converts this data to a string. The database is existing with other applications depending on it so it cannot be modified.

Example:

TableFoo - first()->ID = 0x1234

TableBar - has an entry with ID 0x1234

I have attempted to manually just add the 0x back on to the ID but this also does not find the ID in the second table and I believe this is because it is sending the value as a string.

If I manually do the query:

I have seen in the docs that I can cast a datatype but none of the available types seem like they will help. This problem is also breaking Eloquent relationships.

My main question: is there a way to easily work with this datatype within Eloquent models or should I quit banging my head against a wall and go with a more manual query approach?

0 投票
1 回答
51 浏览

php - PHP 最大存储库数

所以我正在使用 Laravel 框架在 php 中开发一个 Web 应用程序。我有 12 个模型和 1 个控制器,以及 12 个链接到模型的存储库。在每个存储库中,我都在编写一些带有查询的函数,因此它们不会在控制器中重复。我正在尝试在控制器构造函数中注入存储库,但不知道其中有多少太多?

我听说,它通常是 1 或 2 个,但到目前为止我有 12 个。

控制器:

存储库:

0 投票
1 回答
19 浏览

arrays - 无法捕获所有参数

好的,我正在尝试记录并发送电子邮件通知/确认记录已记录。我在 Players 模型和 Lessonhours 模型之间有多对多的关系。User 模型与 Players 模型是一对多的。我已经运行了我的“商店”方法,并进行了几次不同的修改,最后我收到了要发送的电子邮件。问题是我无法获取现有的玩家数组并向每个玩家发送电子邮件。我的表单中的多项选择已正确插入各自的表格中。在收集电子邮件数据时,我最接近以下代码。THIS 的问题在于,当他们存在时,我只能获得一名球员,而不是两名或更多球员。我希望这是有道理的。截图如下。

$request 数组的代码和截图: $request 对象的代码和 dd()。

dd($request->players)

查询后,未捕获玩家数组。

不捕获玩家数组 dd($players)

向 $request 对象添加索引的代码

尝试添加索引后出现错误消息。

球员型号: 球员模型

我对此不是很有经验,我发现很难确定要使用哪个文档示例。插入记录后如何获取所有要发送的电子邮件地址?我感谢提供的所有帮助。

课时模型: 课时模型

商店课时表格 课时表格

用户模型 在此处输入图像描述

0 投票
2 回答
720 浏览

php - 查询多于一列的雄辩关系

玩弄 laravel 雄辩的关系。我有这些关系。

命令:

订单.php

订单详情

订单详情模型

产品

id name price

当 dd'ed dd($this->order->with('orderDetails')->get();

我可以使用包含在订单详细信息中的产品 ID 来获取订单和订单详细信息。但我希望能够获得产品的名称,以便显示它。

我应该运行什么查询或更好的方式来定义我的关系?

0 投票
2 回答
550 浏览

laravel - Laravel 5 - Eloquent:过滤多对多关系的更简单方法

我在列表和用户之间有多对多的关系。这是列表模型:

这是用户模型:

在列表页面中,我需要获取属于已登录用户的所有列表。我找到的唯一解决方案是这个:

有没有更简单的方法来达到相同的结果?

0 投票
1 回答
42 浏览

laravel - 在使用 find 限制列时使用 with() 和 find() 会取消关系数据

我有以下代码显示不同的数据,具体取决于您是查看自己数据的经过身份验证的用户,还是查看其他用户的数据。该代码有效,但在我看来非常讨厌。

我尝试在模型调用中使用类似于以下内容的内容。

但是,当我指定要从用户表中获取的列时,它会否定关系数据,因此它会以空数组的形式返回。有没有不同的方法可以做到这一点更清洁?我鄙视在这种情况下必须创建一个 stdClass 作为数据容器,并且觉得我可能会遗漏一些东西。

0 投票
2 回答
1334 浏览

laravel - Laravel 5 Model Inheritance - 获取子模式时返回父数据

所以我有一个疯狂的想法,它与 Laravel 和模型继承有关。我想配置一组具有单亲的模型,但是当我请求子模型时,我希望返回数据。例如,我将有一个 Contacts 模型,它是父模型:

然后我会有一系列从联系人继承的联系人类型。这些子模型中的每一个都有自己的一组字段(即对于成员我需要知道他们何时加入等,但对于志愿者我可能需要知道他们是否有最新的急救证书)。这里有一些例子:

我希望能够做类似的事情:

并返回联系人和成员数据,就好像所有内容都是一行一样,如下所示:

为了让它更难一点,我希望所有适用于父母的关系都为孩子工作。所以我可以做这样的事情:

而且,即使 Member 模型没有定义到 Phone 模型的关系,它也会返回与 Contact 相关的电话,因为父模型具有这种关系。

我还希望能够在检索数据时指定不属于子项的列,并且 Laravel 不会抛出错误:

我已经搞砸了重写 Eloquent 模型并编写了我自己的 all 版本并找到了正在工作的方法,但看起来我可能必须重写所有方法才能让它工作,也许这不仅仅是工作放弃 Eloquent 并寻找其他(或我自己定制的)解决方案。

所以我想我的问题是:有没有一种“简单”的方法可以用 Laravel 做到这一点,或者我是否试图让它做它从未打算做的事情?

0 投票
1 回答
1810 浏览

php - Laravel - 调用模型的方法抛出未定义的方法 Illuminate\Database\Query\Builder

我对模型的参数方法有疑问。我有 2PageContentTranslation. 我想ContentTranslation基于语言,所以我在Page模型中有以下方法:

然后我有一种方法PageController可以根据语言获取页面:

我以 JSON 格式返回我的结果(我使用 Laravel 作为 api)。但这种方法行不通。它向我抛出错误:

调用未定义的方法 Illuminate\Database\Query\Builder::contentTranslations()

前段时间,我想返回contentTranslations所有语言,所以我在模型方法中没有参数,在调用foreach 循环contentTranslations后一切正常。$page->contentTranslations;为什么我在将参数传递给方法时遇到了麻烦?

0 投票
2 回答
71 浏览

laravel - Laravel 中的多对多关系

我正在尝试在 Laravel 5.3 上构建一个应用程序,其中我的模型、数据库和控制器位于不同的文件夹中。我有以下文件夹结构:

我正在与多对多关系的域建立关系,即

我已将表命名domain_theme2017_01_07_140804_create_themes_domains_table.php

现在我正在尝试获取属于控制器中域的主题名称,如下所示:

我收到一个错误:

SQLSTATE [42S02]:未找到基表或视图:1146 表 'nitswebbuilder.domain_domain' 不存在(SQL:选择domains.*, domain_domain. domain_idas pivot_domain_idfrom domainsinner join domain_domainon domains. id= domain_domain. domain_idwhere domain_domain. domain_idis null and domains. deleted_atis null)

0 投票
2 回答
200 浏览

php - Laravel Eloquent 查询使用 where

我有两个模型。状态和销售详情。

我没有定义从 Status 到 SaleDetails 的任何关系。


在模型中:

所以我在这里要做的是获取所有状态与某个 slug 匹配的订单。例如dd($this->sale_details->where('status.slug', 'pending')

有了我所使用的:

$orders = $this->sale_details->with('product', 'status')->today()->get();

我应该能够根据前端的状态信息过滤它们,但我想直接从这里开始。

解决这个问题的最佳方法是什么?