Error : Call to a member function where() on int

I want to update data only in pivot table in Laravel 8. All columns are foreign keys. While run the following query, the data in pivot table has been updated but Laravel form give the following error.

Error:

Call to a member function where() on int

Controller:
DB::table("student_topic_examiner")->update([
                        "internal_id" => $internal->id,
                        "external_id" => $external->id])
                        ->where("roll_number", "=", $request->input('roll_number'));

Database pivot table is as pivot table.
Please guide.

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

The problem is that you are calling where() after update().

update() returns a integer (1 if something was updated, 0 otherwise).

It means that you code translates to (1)->where("roll_number", "=", $request->input('roll_number')).

If you only want to update the rows where this condition is true:

->where("roll_number", "=", $request->input('roll_number'))

Then, call it before update():

DB::table("student_topic_examiner")
                   ->where("roll_number", "=", $request->input('roll_number'))
                   ->update([
                        "internal_id" => $internal->id,
                        "external_id" => $external->id]
                   );


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x