草庐IT

eloquent

全部标签

mysql - Laravel orderBy 大大减慢了响应速度

省略不必要的信息表结构如下(未列出所有with关系):productsidlaunch_datenameproduct_view_historyidaccount_idproduct_idtimestamps我的查询需要花费不规则的长时间。通过我所做的所有分析,在SQL中花费的实际时间非常少(),但执行此代码所需的时间在900+ms中范围:$this->select('products.*',DB::raw('COUNT(product_view_history.id)asview_count'))->leftJoin('product_view_history','product_v

php - Laravel 原始查询并包含模型关系

我正在尝试返回带有子查询的单个帖子,以包括反对票和赞成票的计数。我可以通过使用原始查询来实现这一点。但是这样做意味着我无法再访问后期模型关系,例如评论。是否有更多Eloquent方法可以保持模型关系?或者是否有更好的方法来解决整个问题?很想听听你会怎么做。$post=DB::select("SELECTpost.*,(SELECTCOUNT(*)FROMposts_votesWHEREtype=1ANDpost_id=posts.id)ASup_votes,(SELECTCOUNT(*)FROMposts_votesWHEREtype=2ANDpost_id=posts.id)ASdo

php - 如何将带有 CAST 函数的 SQL 转换为 Eloquent

我对这个sql有问题。SELECTwp_posts.*FROMwp_postsJOINwp_postmetaONwp_posts.ID=wp_postmeta.post_idWHEREwp_posts.post_date>'2017-04-2023:59:59'ANDwp_postmeta.meta_key='views'ORDERBYwp_postmeta.meta_value+0DESCLIMIT0,10此查询返回查看次数最多的帖子。我想将其转换为Eloquent。 最佳答案 假设您已经按照thistutorial中所述设置了w

php - Eloquent 具有多对多 (belongsToMany)

我有这个给定的表结构:如何使用Eloquent从我的“visita”类访问“curso.name”?我分配了多对多关系,但只能访问“turma.curso_id”,但我想得到类似$visita->curso['nome']的内容。我想知道如何避免需要Curso::all()。在下面添加了一些片段://ClassVISITAclassVisitaextendsModel{protected$fillable=['id','nome',];publicfunctionturmas(){return$this->belongsToMany('App\Models\Turma','turma_

php - 使用 php/eloquent/mysql 分组和嵌套数组

假设我有一个基于时间的数据集,其中包含如下数据数组:{"group":"a","date":"2017/01/01",value:0.01},{"group":"a","date":"2017/01/02",value:0.02}如何生成这样的结果集:{"group":"a",value_sum:0.03,timeline:[["2017/01/01",0.01],["2017/01/02",0.02]]}等等。我正在使用EloquentORM,目前我坚持一种模式,我进行两个不同的查询,第一个查询获取每个不同组的总和:SELECTgroup,sum(value)FROMtableGRO

php - Laravel Eloquent 关系 AVG 有

我有store表与product表相关,product.rating(int)1到5我想根据我的帖子数据找到平均产品评级为3星或任何的商店我的代码$store=newStore;if((int)$request->input('store-rating')>0){$store->whereHas('product',function($query)use($request){$rate=$request->input('product-rating');$query->where(DB::raw('AVG(rating)'),$rate);});}$store->with('produ

php - Eloquent Query 用于获取用户没有完成交易的所有用户失败交易

我很难构建一个Eloquent查询来提供一个问题案例交易的仪表板。问题定义为用户未完成交易的所有失败交易。我有两个表,users和transactions。一个用户可以有很多交易,一个交易的状态可以是已完成或失败。我需要一个Eloquent查询来从所有至少有一个失败交易并且没有任何完成交易的用户那里获取失败交易列表。我目前通过查询用户而不是交易从另一个方向来解决这个问题$failed_transactions=User::has('transactions')->whereDoesntHave('transactions',function($query){$query->where(

php - 如何在满足某些条件的 Where Clause 上获得结果?

我正在使用MySQL数据库表scholarship_discount。其中我有三个字段,分别是ma​​xPercentage、minPercentage和name。因此,如果所有字段都满足我的条件,我想运行查询以获取行。我正在使用Laravel5.6框架。问题是当我在MySqlWorkbench中运行这个查询然后得到正确的结果但是当尝试通过Laravel然后得到错误的结果。问题示例::如果我给uservalueas78那么我得到rowid5,否则96然后rowis1.ok没问题。使用mysqlworkbench。但是当我给出98,96,97,99时,我没有得到任何结果。为什么?我不知道

php - Laravel - 通过检查数据库中数组中是否存在值来过滤集合

我想根据存储在表中的数组中是否存在单个值来返回帖子集合。在我的帖子表中,我有常规的列名称,如“title”、“body”和“slug”。我使用同一个表管理多个站点,因此我有一个额外的列名称“site_ids”。当用户创建帖子时,他们选择他们希望发布帖子的网站,并将网站ID存储为数组(例如[1,2])-----------------------------------------------|Title|Site_ids|Slug|-----------------------------------------------|TestTitle|[1,2,3]|test-title|-

mysql - 具有多个相似实体的数据库最佳实践

我有一个关于2个替代方案的非常简单的问题,我不知道该选择哪一个。我有可以是“联系人”的实体。一个“联系人”可以有多个电子邮件地址、多个电话号码和多个地址。在我的数据模型中,我创建了实体联系人,它与实体电子邮件、电话和地址有1到n的关系。现在表电子邮件只有字段“电子邮件”和“评论”,而电话具有类似的结构“电话号码”和“评论”。将它们保存在2个不同的表中是“更好”还是我应该制作一张表,让其命名为“详细信息”或其他名称,列“值”、“类型”和“评论”,类型为例如“电子邮件”或“电话号码”。我正在使用L4和Eloquent模型,我希望可以轻松编写一些方法,这些方法为我提供与不同表相同的功能。但我