是的,不确定我是否做错了什么,或者这是Laravel中的Illumb\Database的问题。
我的代码:
$sth = Insect::leftJoin('types', 'types.id', '=', 'families.type_id')
->select('types.name as types','families.id','families.name')
->get()
->groupBy('types');
groupBy之前的结果是:
[
{
"types": "moths",
"id": 1,
"name": "Bombycidae"
},
{
"types": "moths",
"id": 2,
"name": "Brahmaeidae"
},
{
"types": "moths",
"id": 3,
"name": "Cossidae"
},
{
"types": "larvas",
"id": 6,
"name": "test"
}]
但对于groupBy:
{
"moths": [
{
"types": "moths",
"id": 1,
"name": "Bombycidae"
},
{
"types": "moths",
"id": 2,
"name": "Brahmaeidae"
},
{
"types": "moths",
"id": 3,
"name": "Cossidae"
}
],
"larvas": [
{
"types": "larvas",
"id": 6,
"name": "test"
}
]
}
所以我的问题是,我想去掉对象中的类型。。。
有什么想法吗?
您可以删除选择类型,改为执行以下操作:
$sth = Insect::leftJoin('types', 'types.id', '=', 'families.family_id')
->select('families.id','families.name')
->groupBy('insects.id', 'types.name')
->get();
此外,要查看实际的原始查询,可以使用以下命令
$sth = Insect::leftJoin('types', 'types.id', '=', 'families.family_id')
->select('families.id','families.name')
->groupBy('insects.id', 'types.name')
->toSql();
dd($sth);
您正在选择要在对象中使用的列,因此如果将其从select语句中删除,它将不再显示在对象中,您还可以将类型添加到类型模型中的$hidden
输入中,如下所示:
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'name',
];
在laravel中分组:https://laravel.com/docs/5.5/queries#ordering-分组限制和偏移
从数组中隐藏行:https://laravel.com/docs/5.5/eloquent-serialization#hiding-attributes-from-json
好的,首先,您要做的是在结果集合上调用group by
,这与命名非常糟糕的GROUP BY
MySQL查询子句无关(不相关,但值得注意)。
您只需将结果映射到所需内容:
$sth = Insect::leftJoin('types', 'types.id', '=', 'families.type_id')
->select('types.name as types','families.id','families.name')
->get()
->groupBy('types')->map(function ($group) {
return $group->map(function ($value) {
return [ "id" => $value->id, "name" => $value->name ];
});
});
问题内容: 我正在创建一个JavaScript对象,如下所示 之后,我将它们如下 上面的方法是否按照对象先前的顺序对它们进行了字符串化处理?字符串化后,它们将按照以前的顺序排列为0,1,2 .... 9吗? 问题答案: 文档中没有任何内容可以明确确认数组项的顺序已保留。但是,文档指出,对于非数组属性,不能保证顺序: 非数组对象的属性不能保证以任何特定顺序进行字符串化。不要依赖于字符串化中同一对象内
null null null
我有一个目标。我想通过删除除某些特定属性之外的所有属性来修改对象(而不是克隆它)。例如,如果我从这个对象开始: 并且只需要属性p1、p2和p100,如何获得此对象: 我明白如何用蛮力做到这一点,但我想要一个更优雅的解决方案。
问题内容: 我正在尝试熊猫的分组依据功能,特别是 由于gb有50个组,因此结果非常混乱,我只想探索前5个组的结果。 我找到了如何使用或选择单个组的方法(如何通过key访问datagroup的pandasgroup ),但没有找到直接选择多个组的方法。我能做的最好的事情是: 有没有更直接的方法? 问题答案: 你可以做类似的事情 虽然,我会采取不同的方法。您可以使用该对象快速获取组: 现在,您可以像字
问题内容: 给定一个记录某些书籍使用情况的数据框,如下所示: 我需要获取所有书籍的数量,保留其他列并获取以下内容: 如何才能做到这一点? 谢谢! 问题答案: 您需要以下内容: 在您的情况下,“名称”,“类型”和“ ID”列的值匹配,因此我们可以对它们进行调用,然后单击。 另一种方法是使用添加“ Count”列,然后调用:
问题内容: 我有一个像这样的熊猫数据框: 我想按第一列分组并获得第二列作为行中的列表: 可以使用来做类似的事情吗? 问题答案: 你可以使用以下方法对感兴趣的列进行分组,然后对每个分组进行分组: