2017-11-06 6 views
0

私はLaravel Eloquentを使用してユニークな回答を選びます。Laravel Eloquent unique() - うまくいきません。

私のデータベースには3つの回答がありますが、2つの異なる質問があります。

だから私は戻って返す必要がありますすべては、これまで数2、ない番号3

私のコードです:

$foundation_scores = Foundation::where('user_id', $this->user_id) 
             ->where('foundation_section', 'theory') 
             ->get(); 

     $foundation_scores->unique('foundation_question'); 
     $foundation_scores = count($foundation_scores); 

( 'foundation_question')ユニークがを返します。それは返す必要があります

これはなぜでしょうか?

array:3 [ 
    0 => array:12 [ 
    "foundation_id" => 3 
    "user_id" => 17019 
    "foundation_section" => "theory" 
    "unit_id" => 0 
    "foundation_sub_section" => "Unit 1" 
    "foundation_question" => 0 
    "foundation_reference" => "Ref one way st" 
    "foundation_answer" => "Ref answer st" 
    "created_at" => "2017-10-25 11:57:05" 
    "updated_at" => "2017-10-25 11:57:05" 
    "deleted_at" => null 
    "friendly_date" => "25th October 2017" 
    ] 
    1 => array:12 [ 
    "foundation_id" => 4 
    "user_id" => 17019 
    "foundation_section" => "theory" 
    "unit_id" => 0 
    "foundation_sub_section" => "Unit 1" 
    "foundation_question" => 0 
    "foundation_reference" => "Red" 
    "foundation_answer" => "Ans" 
    "created_at" => "2017-10-25 12:02:01" 
    "updated_at" => "2017-10-25 12:02:01" 
    "deleted_at" => null 
    "friendly_date" => "25th October 2017" 
    ] 
    2 => array:12 [ 
    "foundation_id" => 5 
    "user_id" => 17019 
    "foundation_section" => "theory" 
    "unit_id" => 0 
    "foundation_sub_section" => "Unit 1" 
    "foundation_question" => 1 
    "foundation_reference" => "XY" 
    "foundation_answer" => "Z" 
    "created_at" => "2017-10-25 12:02:19" 
    "updated_at" => "2017-10-25 12:02:19" 
    "deleted_at" => null 
    "friendly_date" => "25th October 2017" 
    ] 
] 

はユニークとのバグです:次のように

私のコレクションは、私はすべてのコードLaravelの戻り値をavoideする配列として、それを出力しました(注)に見えます。それとも私が間違っていることですか?

答えて

3

$foundation_scores->unique('foundation_question');ユニークの値は新しい変数に割り当てられていません。またunique()は元のコレクションを変更しません。

ので:

$unique_collection = $foundation_scores->unique('foundation_question'); 
echo count($unique_collection); 
+0

グレート、ありがとうございました!したがって、本質的に新しい変数を割り当てることは、コレクションで動作します。 – StuBlackett

関連する問題