草庐IT

eloquent

全部标签

php - 在 Eloquent 中嵌套一对多关系

假设我有三个具有这种关系的模型用户有许多(应用程序/组织)组织机构有很多(应用程序/订单)订购对于一个级别,我可以去用户->组织()->get()并获取与用户相关的所有组织。但是每个组织也有0..manyORDER实体。所以我想这样做:user->organisations()->orders()->get()获取来自某个用户的所有组织的所有订单的列表。这样可以吗? 最佳答案 您可以简单地执行hasManyThrough()User模型上的关系。publicfunctionorders(){return$this->hasManyT

php - 拉维尔 5.4 : How to order by count(column) in eloquent?

我正在尝试显示按assigned_to票数最多的受让人姓名。$accesses=Access::where('state','=','Assigned');$all=Report::where('state','=','Assigned')->union($accesses)->orderBy('count(assigned_to)')//THISISWRONG->get(); 最佳答案 你必须使用DB::raw来获取它$all=Report::where('state','=','Assigned')->select(DB::ra

php - 多个记录 ID 的 Laravel 批量更新

我想在Laravel中批量更新我的记录,但记录没有得到更新。我对每个ID都有不同的记录。以下是我正在尝试的。$ids=[5,6,8,9],$updated_array=[['name'=>'tarun'],['name'=>'Akash'],['name'=>'Soniya'],['name'=>'Shalu'],];Model::whereIn('id',$ids)->update($updated_array); 最佳答案 当您尝试将多行更新为相同的值时,会使用批量更新。您不能使用不同的值进行批量更新。因此,这可行,但会将所有匹

php - 如何使用 'where' 等 Eloquent 方法从对象/集合中获取特定日期

我想用chartjs在我的网站上实现一个图表。我正在尝试使用laravel,我用一个具有关系(产品、结果)的对象(提供者)创建了一个函数,我想过滤它。我只想得到实际月份/实际年份的结果。所以我尝试了很多东西,但我无法提供一个简单、干净的代码解决方案。我尝试了以下操作:$providerResults->results->where('created_at','2019-01-2800:00:00')//这是可行的,但我只想使用“2019”或“1”进行过滤'一月$providerResults->results->where('created_at','LIKE','%2019%')//

mysql - Laravel 和使用 Eloquent 的多计数查询

我正在尝试优化我在过去7天内生成统计信息的代码。目前我正在使用eloquent&查询计数来记录每天的数据,这导致我在一个循环中进行7个单独的查询。例子://loopfornumberofdaysfor($i=0;$i',$oldest)->where('objecttime','count();//morelogictosetcomparitiveunixtimes$newest=$newest-$dayDuration;}我知道可以使用与描述相似的语法在sql中对查询进行分组here;我想知道的是,是否可以在Laravel中使用eloquent/fluent来做同样的事情,还是只能使

php - Laravel - 多表全文搜索

我正在为我们正在进行的项目使用Laravel4和Eloquent模型。数据库符合3NF,一切正常。此外,所有MySQL表都从InnoDB切换回MyISAM,因为MySQL版本在创建一些数据库搜索过滤器时,我发现使用Eloquent模型与查询生成器相比存在一些不足。具体而言,尤其是当尝试对多个表中的列进行全文搜索时(并保持在Eloquent的对象上下文中)。为简单起见,我们有以下数据库结构:--projects--id--name--status--...--users--id--...--roles--id--project_id--user_id--...--notes--id--p

php - 使用 Eloquent/Laravel 存储日期

在Eloquent模型中存储日期的好方法是什么?我在Laravel框架中使用PHP。classMyModelextendsEloquent{//Iwantadatefieldhere...shoulditbe:public$endTime=?;}我应该使用保存为int的整数时间戳吗?如果我在属性中使用Date对象并保存该对象,会有什么行为? 最佳答案 如果您使用migration然后使用$table->timestamp('endTime'),这将使用endTime作为名称创建一个timestamp字段。Bydefault,Eloq

php - 在 laravel 数据透视表上过滤

我在Laravel中有两个表与数据透视表相连。这两个表是users和roles,数据透视表称为role_user。数据透视表还包含两个额外的字段:start和stop。这样我就可以跟踪用户过去拥有的角色。现在我想创建一个查询来获取当前拥有role_id=3的所有users。首先我使用了WherePivot,但显然那是bugged.我现在使用Eloquent进行了以下查询:Role::with('User')->where('id','=','3')->where('role_user.start','where('role_user.stop','>',date('Y-m-d'))->

php - 拉维尔 4 : How to get selected/specific columns in a many to many relationship?

我想获取与特定对话相关的所有用户。数据透视表有user_id和conversation_id列。user_id和conversation_id分别引用user和conversations表中的id列。所以我做到了:Conversations::find($conv_id)->users()这没问题,但它会返回相关用户的所有详细信息。根据上面的代码,如何只返回用户的某些列,例如id和name?附言此外,我知道我可以通过为数据透视表创建一个模式来做到这一点,但这似乎有点矫枉过正。为数据透视表创建模式是一种好习惯吗?我试过了Conversations::select('id','name')

php - ORM for mysql now() - Laravel 4

我有下面的sqlselect*frombidswheredeleted_atisnullandpublication_date=now()我想用ORM写$bids=Bid::where('publication_date','where('open_date','>=','now()')->get();它不起作用,然后我重写如下$bids=DB::select(DB::raw('select*frombidswheredeleted_atisnullandpublication_date=now()'));如何在ORM上编写上述查询,我认为now()有问题