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) }}
得到你期望的结果
我有一个 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) }}
得到你期望的结果