问题标签 [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.
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?
php - PHP 最大存储库数
所以我正在使用 Laravel 框架在 php 中开发一个 Web 应用程序。我有 12 个模型和 1 个控制器,以及 12 个链接到模型的存储库。在每个存储库中,我都在编写一些带有查询的函数,因此它们不会在控制器中重复。我正在尝试在控制器构造函数中注入存储库,但不知道其中有多少太多?
我听说,它通常是 1 或 2 个,但到目前为止我有 12 个。
控制器:
存储库:
arrays - 无法捕获所有参数
好的,我正在尝试记录并发送电子邮件通知/确认记录已记录。我在 Players 模型和 Lessonhours 模型之间有多对多的关系。User 模型与 Players 模型是一对多的。我已经运行了我的“商店”方法,并进行了几次不同的修改,最后我收到了要发送的电子邮件。问题是我无法获取现有的玩家数组并向每个玩家发送电子邮件。我的表单中的多项选择已正确插入各自的表格中。在收集电子邮件数据时,我最接近以下代码。THIS 的问题在于,当他们存在时,我只能获得一名球员,而不是两名或更多球员。我希望这是有道理的。截图如下。
我对此不是很有经验,我发现很难确定要使用哪个文档示例。插入记录后如何获取所有要发送的电子邮件地址?我感谢提供的所有帮助。
php - 查询多于一列的雄辩关系
玩弄 laravel 雄辩的关系。我有这些关系。
命令:
订单.php
订单详情
订单详情模型
产品
id
name
price
当 dd'ed dd($this->order->with('orderDetails')->get();
我可以使用包含在订单详细信息中的产品 ID 来获取订单和订单详细信息。但我希望能够获得产品的名称,以便显示它。
我应该运行什么查询或更好的方式来定义我的关系?
laravel - Laravel 5 - Eloquent:过滤多对多关系的更简单方法
我在列表和用户之间有多对多的关系。这是列表模型:
这是用户模型:
在列表页面中,我需要获取属于已登录用户的所有列表。我找到的唯一解决方案是这个:
有没有更简单的方法来达到相同的结果?
laravel - 在使用 find 限制列时使用 with() 和 find() 会取消关系数据
我有以下代码显示不同的数据,具体取决于您是查看自己数据的经过身份验证的用户,还是查看其他用户的数据。该代码有效,但在我看来非常讨厌。
我尝试在模型调用中使用类似于以下内容的内容。
但是,当我指定要从用户表中获取的列时,它会否定关系数据,因此它会以空数组的形式返回。有没有不同的方法可以做到这一点更清洁?我鄙视在这种情况下必须创建一个 stdClass 作为数据容器,并且觉得我可能会遗漏一些东西。
laravel - Laravel 5 Model Inheritance - 获取子模式时返回父数据
所以我有一个疯狂的想法,它与 Laravel 和模型继承有关。我想配置一组具有单亲的模型,但是当我请求子模型时,我希望返回数据。例如,我将有一个 Contacts 模型,它是父模型:
然后我会有一系列从联系人继承的联系人类型。这些子模型中的每一个都有自己的一组字段(即对于成员我需要知道他们何时加入等,但对于志愿者我可能需要知道他们是否有最新的急救证书)。这里有一些例子:
我希望能够做类似的事情:
并返回联系人和成员数据,就好像所有内容都是一行一样,如下所示:
为了让它更难一点,我希望所有适用于父母的关系都为孩子工作。所以我可以做这样的事情:
而且,即使 Member 模型没有定义到 Phone 模型的关系,它也会返回与 Contact 相关的电话,因为父模型具有这种关系。
我还希望能够在检索数据时指定不属于子项的列,并且 Laravel 不会抛出错误:
我已经搞砸了重写 Eloquent 模型并编写了我自己的 all 版本并找到了正在工作的方法,但看起来我可能必须重写所有方法才能让它工作,也许这不仅仅是工作放弃 Eloquent 并寻找其他(或我自己定制的)解决方案。
所以我想我的问题是:有没有一种“简单”的方法可以用 Laravel 做到这一点,或者我是否试图让它做它从未打算做的事情?
php - Laravel - 调用模型的方法抛出未定义的方法 Illuminate\Database\Query\Builder
我对模型的参数方法有疑问。我有 2Page
和ContentTranslation
. 我想ContentTranslation
基于语言,所以我在Page
模型中有以下方法:
然后我有一种方法PageController
可以根据语言获取页面:
我以 JSON 格式返回我的结果(我使用 Laravel 作为 api)。但这种方法行不通。它向我抛出错误:
调用未定义的方法 Illuminate\Database\Query\Builder::contentTranslations()
前段时间,我想返回contentTranslations
所有语言,所以我在模型方法中没有参数,在调用foreach 循环contentTranslations
后一切正常。$page->contentTranslations;
为什么我在将参数传递给方法时遇到了麻烦?
laravel - Laravel 中的多对多关系
我正在尝试在 Laravel 5.3 上构建一个应用程序,其中我的模型、数据库和控制器位于不同的文件夹中。我有以下文件夹结构:
我正在与多对多关系的域建立关系,即
我已将表命名domain_theme
为2017_01_07_140804_create_themes_domains_table.php
现在我正在尝试获取属于控制器中域的主题名称,如下所示:
我收到一个错误:
SQLSTATE [42S02]:未找到基表或视图:1146 表 'nitswebbuilder.domain_domain' 不存在(SQL:选择
domains
.*,domain_domain
.domain_id
aspivot_domain_id
fromdomains
inner joindomain_domain
ondomains
.id
=domain_domain
.domain_id
wheredomain_domain
.domain_id
is null anddomains
.deleted_at
is null)
php - Laravel Eloquent 查询使用 where
我有两个模型。状态和销售详情。
我没有定义从 Status 到 SaleDetails 的任何关系。
在模型中:
所以我在这里要做的是获取所有状态与某个 slug 匹配的订单。例如dd($this->sale_details->where('status.slug', 'pending')
有了我所使用的:
$orders = $this->sale_details->with('product', 'status')->today()->get();
我应该能够根据前端的状态信息过滤它们,但我想直接从这里开始。
解决这个问题的最佳方法是什么?