Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

TylerW's avatar

Eloquent Query Just Not Working?

I'm totally dumbfounded by this... I have a table with two columns, user_action_id and correct_action_id. I just want to return all rows where user_action_id is EQUAL to correct_action_id.

Why does this query not work:

$correctQuestions = \App\Question::where('quiz_id', \Auth::user()->active_quiz_id)->where('user_action_id', 'correct_action_id')->get();
 return $correctQuestions;

Take a look at the response below. You can clearly see that it is returning rows where correct_action_id IS NOT EQUAL to user_action_id, despite specifically requesting they be equal.

[ 
   { 
      "id":1596,
      "quiz_id":63,
      "sim_1_id":346,
      "sim_2_id":394,
      "hand":"Kh6h3h7c",
      "result":null,
      "created_at":"2019-12-02 20:06:15",
      "updated_at":"2019-12-02 20:06:18",
      "correct_action_id":0,
      "user_action_id":0
   },
   { 
      "id":1597,
      "quiz_id":63,
      "sim_1_id":755,
      "sim_2_id":751,
      "hand":"Qc9c8s6s",
      "result":null,
      "created_at":"2019-12-02 20:06:15",
      "updated_at":"2019-12-02 20:06:56",
      "correct_action_id":9,
      "user_action_id":0
   },
   { 
      "id":1598,
      "quiz_id":63,
      "sim_1_id":973,
      "sim_2_id":971,
      "hand":"Kd9h8d7h",
      "result":null,
      "created_at":"2019-12-02 20:06:15",
      "updated_at":"2019-12-02 20:07:57",
      "correct_action_id":10,
      "user_action_id":0
   },
   { 
      "id":1600,
      "quiz_id":63,
      "sim_1_id":576,
      "sim_2_id":574,
      "hand":"AdJcJdTd",
      "result":null,
      "created_at":"2019-12-02 20:06:15",
      "updated_at":"2019-12-02 20:15:19",
      "correct_action_id":0,
      "user_action_id":0
   },
   { 
      "id":1601,
      "quiz_id":63,
      "sim_1_id":347,
      "sim_2_id":350,
      "hand":"5s4s6d3d",
      "result":null,
      "created_at":"2019-12-02 20:06:15",
      "updated_at":"2019-12-02 20:15:28",
      "correct_action_id":3,
      "user_action_id":0
   },
   { 
      "id":1603,
      "quiz_id":63,
      "sim_1_id":565,
      "sim_2_id":581,
      "hand":"5s4sQdTd",
      "result":null,
      "created_at":"2019-12-02 20:06:15",
      "updated_at":"2019-12-02 20:15:44",
      "correct_action_id":0,
      "user_action_id":0
   },
   { 
      "id":1604,
      "quiz_id":63,
      "sim_1_id":386,
      "sim_2_id":400,
      "hand":"TdQhTc6c",
      "result":null,
      "created_at":"2019-12-02 20:06:15",
      "updated_at":"2019-12-02 20:15:45",
      "correct_action_id":0,
      "user_action_id":0
   },
   { 
      "id":1606,
      "quiz_id":63,
      "sim_1_id":965,
      "sim_2_id":969,
      "hand":"AsJhTcTh",
      "result":null,
      "created_at":"2019-12-02 20:06:15",
      "updated_at":"2019-12-02 20:16:43",
      "correct_action_id":0,
      "user_action_id":0
   },
   { 
      "id":1607,
      "quiz_id":63,
      "sim_1_id":757,
      "sim_2_id":null,
      "hand":"Ts4d5h6c",
      "result":null,
      "created_at":"2019-12-02 20:06:15",
      "updated_at":"2019-12-02 20:17:19",
      "correct_action_id":0,
      "user_action_id":0
   },
   { 
      "id":1608,
      "quiz_id":63,
      "sim_1_id":754,
      "sim_2_id":747,
      "hand":"2dAhJh2h",
      "result":null,
      "created_at":"2019-12-02 20:06:16",
      "updated_at":"2019-12-02 20:18:02",
      "correct_action_id":0,
      "user_action_id":0
   },
   { 
      "id":1610,
      "quiz_id":63,
      "sim_1_id":934,
      "sim_2_id":933,
      "hand":"AcKsQd3d",
      "result":null,
      "created_at":"2019-12-02 20:06:16",
      "updated_at":"2019-12-02 20:18:08",
      "correct_action_id":0,
      "user_action_id":0
   },
   { 
      "id":1612,
      "quiz_id":63,
      "sim_1_id":974,
      "sim_2_id":972,
      "hand":"AcAh9s2h",
      "result":null,
      "created_at":"2019-12-02 20:06:16",
      "updated_at":"2019-12-02 20:19:40",
      "correct_action_id":11,
      "user_action_id":0
   },
   { 
      "id":1613,
      "quiz_id":63,
      "sim_1_id":986,
      "sim_2_id":981,
      "hand":"AcAsKd5s",
      "result":null,
      "created_at":"2019-12-02 20:06:16",
      "updated_at":"2019-12-02 20:20:17",
      "correct_action_id":11,
      "user_action_id":0
   }
]
0 likes
1 reply
tykus's avatar

If you are comparing equality of two columns in the query, you need to use whereColumn passing the column names, i.e.

$correctQuestions = \App\Question::where('quiz_id', \Auth::user()->active_quiz_id)
    ->whereColumn('user_action_id', 'correct_action_id')
    ->get();

Please or to participate in this conversation.