【发布时间】:2017-03-26 19:19:25
【问题描述】:
我在集合 https://laravel.com/docs/5.3/collections#method-contains 上使用 Laravel contains 方法。但这对我不起作用。
foreach ($this->options as $option) {
if($options->contains($option->id)) {
dd('test');
}
}
dd($options); 看起来像这样:
Collection {#390
#items: array:1 [
0 => array:3 [
0 => array:7 [
"id" => 10
"slug" => "test"
"name" => "test"
"poll_id" => 4
"created_at" => "2016-11-12 20:42:42"
"updated_at" => "2016-11-12 20:42:42"
"votes" => []
]
1 => array:7 [
"id" => 11
"slug" => "test-1"
"name" => "test"
"poll_id" => 4
"created_at" => "2016-11-12 20:42:42"
"updated_at" => "2016-11-12 20:42:42"
"votes" => []
]
2 => array:7 [
"id" => 12
"slug" => "test-2"
"name" => "test"
"poll_id" => 4
"created_at" => "2016-11-12 20:42:42"
"updated_at" => "2016-11-12 20:42:42"
"votes" => []
]
]
]
}
dd($option->id); 的结果是10。
可能出了什么问题?还是有更好的办法?
【问题讨论】:
-
不知何故,5年多过去了,没有人能正确回答这个问题。
dd()的输出清楚地显示该集合包含一个项目:一个数组。当然尝试在数组上使用Collection::contains()会失败! -
即使接受的答案有效,它也只是在问“这个集合的 id 是否等于它自己的 id?”当然可以!我觉得我正在服用疯狂的药丸等。
标签: php laravel collections