问题标签 [laravel-models]
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.
laravel - 在 Laravel 中查询用户的多对多关系
我有一个 'Admin' 模型,它与 'Priv' 模型具有多对多关系。有一个名为“admins_privs”的数据透视表将两者联系在一起,因为许多管理员可以拥有许多特权。
我需要做的是能够(在 Blade 中)检查登录的管理员是否具有特定的权限(通过 ID),如果为真,则显示某些内容。我考虑在管理模型中添加一个函数,如下所示:
然后我可以在我的刀片模板中调用这个函数:
我需要在第一个代码块中添加什么,以搜索多对多关系以查看用户是否链接到 Priv。
任何帮助,将不胜感激。
谢谢米
laravel - 防止 Laravel 集合中的重复查询和 N+1 问题
我目前正在做一个简单的 Laravel 项目,我需要在其中获取我关注的用户的帖子。使用下面的代码,我可以获取帖子,但我还添加了很多重复的查询和一个 N+1 问题关于 Authenticated 用户。所以它变得有点让人头疼。我在网上查看了其他类似的场景,但我无法确定我做错了什么。也许有更好的方法。目前,我有用户模型:
如您所见,我使用两个布尔值来确定用户是否正在关注或被阻止。此外,Post 模型是一个多态模型。我尝试了几件事,其中,我尝试了一个 hasManyThrough,没有使用上面的 hasMany Posts 关系。它为每个用户获取帖子,但由于我使用上面的布尔值,我无法在 hasManyThrough 中使用它们,它只是根据以下 ID 获取帖子,无论用户是否关注或被阻止变得无关紧要。
然后在一个单独的服务类中,我尝试了下面的方法(我使用一个单独的类来更容易地维护代码)。他们都获得了每个用户的帖子,但添加了一个 N+1 问题和基于 2 个用户的 5 个帖子的 12 个重复查询。我还需要根据某些条件过滤结果,因此它可能会添加更多查询。此外,我正在使用 Laravel 资源集合,它会为每个帖子提取其他项目,例如图像、评论等,因此查询量会增加更多。不确定,也许我做的太多了,有一个更简单的方法:
任何一个:
或者
laravel - Laravel - 如何合并查询
有两个模型 BoardArticle 和 BoardArticleLocation。
所以,这些是我尝试过的方法。
这个方法太慢了。
此方法未查找任何项目。
我应该怎么办?
laravel - Laravel:如何更改所有模型的数据?
目前该系统有几十个模型、控制器和几百条路线。
在数据库中执行任何查询时,如果在该查询期间找到某个值,我可以将该数据转换为另一个值。
一个便于理解的示例是,在执行查询时并且在呈现结果之前,找到一个主题标签,该主题标签被另一个值替换。
str_replace()
在这个例子中,难点不在于改变值本身(
但这种变化只是视觉上的,它并没有替换数据库中的数据。
当然我可以在每个控制器上执行此操作,但由于数量的原因,我认为没有什么是可行的
我认为我需要能够以某种方式拦截与数据库进行任何协商的所有结果并进行此替换,但我不知道是否应该使用Middleware
或其他 Laravel 资源,甚至应该由ServiceProvider
.
laravel - 如何在 Laravel 模型中将子密钥对合并到父密钥
这里是老 PHP 用户,但对 Laravel 不熟悉,我需要帮助(答案或相关解决方案的链接)...
如果我有一个关系模型(或集合,我会在这里感到困惑)......
结果...
是否有一个简单的 eloquent 或收集功能将 new_data 键对合并到父数据?这样会导致这个......
我尝试过 flatten、flatMap、mapWithKeys 和其他示例,但未能得到我想要的结果。如果没有简单的解决方案,这将是我的长期方法......
谢谢!
laravel - 在多个分叉存储库之间共享 Laravel Eloquent 模型是可能的吗?
在我的 Laravel 项目中,我有不同类型的模块,例如员工、客户和供应商模块。最近我将每个模块拆分为一个单独的存储库。现在,如果我添加一个模型意味着,我还需要将它复制到其他存储库中。有没有可能克服这个问题?
是否有可能与其他存储库同步/共享模型文件夹?
请帮我解决这个问题。
仅供参考 - 我将 Bitbucket 用于我的存储库。
laravel-5 - 指向不同表的相同模型的 Laravel 项目架构
我在 3 年前创建了一个应用程序,可以根据官方文件查看我国物种和栖息地的分布情况。所以我有模型“物种”,并且在模型的代码中我有
这发生在其他 6 或 7 个模型(以及相应的控制器)上。
现在,新的官方文档出来了,也有了新的数据。
我无法覆盖这些表,因为所有者希望能够同时检查旧数据和新数据。
所以我的问题是:有没有办法构建模型的架构,以便我可以根据我在网站上单击的“按钮”或我可以设置的特定值使模型指向不同的表?也许是这样的?
php - 每当我使用带有分页方法的 Laravel 资源时,我都会收到带有“链接”和“元”键的响应。我想将这些键更改为新格式
我将 laravel 资源用于我的 api 响应并添加了分页方法。使用分页方法时,我总是得到这样的结果,其中 laravel 默认提供三个键,即“数据”、“链接”和“元”。但我想根据自己的需要更改资源。
}
但我想要这样的结果
}
我怎么能做到这一点。我正在使用 Laravel 7.*
我的控制器代码:
我的模型方法如下所示:
我的资源如下所示:
}
php - Laravel Eloquent 模型语法错误或 groupBy 上的访问冲突
MySQL结构
Laravel 资源索引
当我运行代码时,它的错误如何:
SQLSTATE [42000]:语法错误或访问冲突:1055 SELECT 列表的表达式 #1 不在 GROUP BY 子句中,并且包含在功能上不依赖于 GROUP BY 子句中的列的非聚合列“demodb.settings.id”;这与 sql_mode=only_full_group_by 不兼容(SQL: select id
, group
as name
from settings
group by group
order by id
asc)