Laravel 5.1 Eloquent collection 没有返回正确的结果

Laravel 5.1 Eloquent collection not returning correct results

我有一个 eloquent collection {{ $questions }},当我在 blade 模板中输出它时,我得到以下结果:

[{"question_num":0,"survey_id":2,"question_text":"test","expected_answer":1},
  {"question_num":1,"survey_id":2,"question_text":"test","expected_answer":1}] 

如您所见,正好有两个 objects。现在当我应用这个 过滤 {{ $questions->where('question_num','=', 0) }},我得到以下正确结果:

[{"question_num":0,"survey_id":2,"question_text":"test","expected_answer":1}] 

但是当我应用以下过滤器 {{ $questions->where('question_num','=', 1) }} 时,我得到一个空结果,为什么会这样,而显然 collection 有一个值为 1 的 question_num?

[]

我整天都在为这个挠头!

这里的问题是你使用了运算符,这里 where 方法的 Collection 签名是:

where( string $key, mixed $value, bool $strict = true)

所以在这两种情况下,您应该使用:

{{ $questions->where('question_num', 0) }}

{{ $questions->where('question_num', 1) }}

得到你期望的结果