我的表:
-----------------------------------------
| ID | RoomTypeId | ChargeTypeId | Name |
-----------------------------------------
| 1 | 23 | 32 | DD |
| 2 | 26 | 32 | DD |
| 3 | 28 | 31 | CC |
-----------------------------------------
默认情况下,ORM已经是DISTINCT,但是对每一列都这样做并返回所有3
我需要的回报:
-----------------------
| ChargeTypeId | Name |
-----------------------
| 32 | DD |
| 31 | CC |
-----------------------
希望实际上有一种实现方法,而不必DB::query()
答案 0 :(得分:2)
我发现toMap()
会根据您选择的列
示例强>:
$result = \ChargeTypes::get()->toMap("ChargeTypeId", "Name")
<强> $ result-&GT;指定者()强>:
array(2) {
[32]=>
string(2) "DD"
[6]=>
string(2) "CC"
}
UPDATE 我不相信这实际上会创建一个DISTINCT查询,它只是在我的案例中工作,以下将清楚阐述为什么
$myArray = array();
$myArray[32] = "DD";
$myArray[32] = "DD";
$myArray[32] = "DD";
$myArray[6] = "CC";
$myArray[6] = "CC";
var_dump($myArray);
结果:
array(2) {
[32]=>
string(2) "DD"
[6]=>
string(2) "CC"
}
所以理论上只要你的第一个密钥是唯一的,尽管有多余的迭代,这实际上并不是解决方案的好处。