我有一个Laravel后端和一个VueJS前端。
我试图在一个具有hasOne关系的模型上生成一个查询,但只从关系中选择特定的列,做一个sum和一个group By。
public function contractsByYear() {
return Contract::where('CONTRACT_TYPE','LIKE','SP-%')->with(['AdditionalInfo' => function($query) {
$query->selectRaw('MONTH(START_DATE) as Month')->whereYear('START_DATE','2019');
}])->sum('CONTRACT_PRICE')->groupBy('Month');
}
MONTH | TOTAL
1 | 500
2 | 233
3 | 800
etc
收集方法可能会做你想做的事情
public function contractsByYear()
{
return Contract::select('id', 'CONTRACT_PRICE') /* Only really need the id (or whatever else is the pk) and the price */
->where('CONTRACT_TYPE','LIKE','SP-%')
->with(['AdditionalInfo' => function($query) {
$query->select('id', 'contract_id') /* Only really need the id (or whatever else is the pk), and the Contract fk*/
->selectRaw('MONTH(START_DATE) as Month') /* Aggregate the month */
->whereYear('START_DATE','2019');
}])
->get()
// From this point on, it's a Collection
->groupBy('AdditionalInfo.*.Month') /* It's either this or 'AdditionalInfo.Month' */
->map(function($item, $key) {
return [
'month' => $key,
'total' => $item->sum('CONTRACT_PRICE')
];
});
}
在我的应用程序中,我更新了从一对多到多对多的关系,我试图找出一种持久化关联功能的方法。 假设我有两个相关的表,例如狗和主人。如果我有一系列的主人,并且我正试图为这些主人获取一份狗的id列表,我应该如何雄辩地做到这一点? 这里也提出了类似的问题:https://laracasts.com/discuss/channels/laravel/getting-many-to-many-related-da
我正在使用Laravel和它提供的雄辩的ORM,但我正在努力选择我需要的数据。我有两种型号 我该怎么做?
我正在尝试使用Laravel雄辩的模型查询多个表,这些模型具有一对一、一对多和多对多的关系。 我有一个表,一个表,一个表和一个透视表。 每个表单有一个品牌和一个用户: 品牌没有任何外键: 用户没有任何外键: 有一个数据透视表可以创建多对多的关系,用于创建拥有许多用户(如品牌成员)的品牌组: 我试图通过直接所有权()或品牌成员身份获取属于用户的所有表单,通过多对多透视表获取用户所属的所有品牌的所有表
我有以下三种型号: 类别字段: 分类选项: 当我运行这个查询时,我得到了这个错误: SQLSTATE[42S22]:列未找到: 1054未知列'field ID'在'where子句'(SQL:选择*从其中=3)任何帮助请知道是什么问题!!?
如何使用laravel雄辩的ORM关系在多个表中发出一个插入请求。即 表1:用户 id 姓名 电子邮件 表2:员额 id 表3:图像 id 用户id 邮政id 图像名称 关系 表id引用了其他两个表中的 表与
假设我在表中有7列,我想只选择其中的两列,类似这样 在laravel雄辩的模型中,它可能是这样的 但我猜这个表达式将选择id等于1的所有列,我只需要两列(名称、姓氏)。如何只选择两列?