PHPFixing
  • Privacy Policy
  • TOS
  • Ask Question
  • Contact Us
  • Home
  • PHP
  • Programming
  • SQL Injection
  • Web3.0

Saturday, February 26, 2022

[FIXED] How to check if record is already exists and then update or insert in laravel?

 February 26, 2022     laravel, mysql, php     No comments   

Issue

I am trying to check first if data already exists or not. If data already exists, then update function otherwise insert a new record. It's working when inserting a new record, but I don't want to be duplicate rows in future.

    public function store(Request $request)
    {
        $requestData = $request->all();
        
            $jobseeker = new Jobseeker();
            $jobseeker->fullname= $requestData['full name'];
            $jobseeker->gender= $requestData['Gender'];
            $jobseeker->messenger_user_id= $request->{'messenger user id'};
            $jobseeker->save();
    }

Here is how I tried, I check if the messenger user id already exists or not, if messenger user id already exists I want to update the existing row, otherwise I want to insert a new row.

    public function store(Request $request,$messenger_user_id)
    {
        $requestData = $request->all();

        $my_msg_id = Jobseeker::where('messenger_user_id',$requestData['messenger user id'])->first();
        
        if (is_null($my_msg_id)) {
          $jobseekers = Jobseeker::find($messenger_user_id);
          $jobseeker->fullname= $requestData['full name'];
          $jobseeker->gender= $requestData['Gender'];
          $jobseeker->messenger_user_id= $request->{'messenger user id'};
        }
        else{
            $jobseeker = new Jobseeker();
            $jobseeker->fullname= $requestData['full name'];
            $jobseeker->gender= $requestData['Gender'];
            $jobseeker->messenger_user_id= $request->{'messenger user id'};
            $jobseeker->save();
        }

    }


Solution

You don't need to do all of this yourself in laravel. Use the method firstOrCreate.

$data_array = [
    'full_name' => $requestData['full name'],
    'gender' => $requestData['Gender'],
];

$jobseeker = App\Jobseeker::firstOrCreate(['messenger_user_id' => $messenger_user_id], $data_array);

It takes an array as first parameter to find a model and array as a second parameter to update the record with given key-values in that array or it'll create a new record with given data, then returns the model object.



Answered By - Deepansh Sachdeva
  • Share This:  
  •  Facebook
  •  Twitter
  •  Stumble
  •  Digg
Newer Post Older Post Home

0 Comments:

Post a Comment

Note: Only a member of this blog may post a comment.

Total Pageviews

Featured Post

Why Learn PHP Programming

Why Learn PHP Programming A widely-used open source scripting language PHP is one of the most popular programming languages in the world. It...

Subscribe To

Posts
Atom
Posts
Comments
Atom
Comments

Copyright © PHPFixing