MOON
Server: Apache
System: Linux e2e-78-16.ssdcloudindia.net 3.10.0-1160.45.1.el7.x86_64 #1 SMP Wed Oct 13 17:20:51 UTC 2021 x86_64
User: imensosw (1005)
PHP: 7.4.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/imensosw/www/ezwork/app/Models/UserSkillPair.php
<?php

/**
 * UserSkillPairModel class file
 *
 * PHP Version 7.2
 *
 * @category Model
 * @package  Ez
 * @author   Imenso Software <admin@imensosoftware.com>
 * @license  http://imensosoftware/license.php GNU Public License
 * @link     http://imensosoftware.com/recipes
 */

namespace App\Models;
  
use Illuminate\Database\Eloquent\Model;
use DB ;

/**
 * UserSkillPairModel class
 *
 * The class manage User Skill Pair related queries
 *
 * @category UserSkillPairModel
 * @package  Ez
 * @author   Imenso Software <admin@imensosoftware.com>
 * @license  http://imensosoftware/license.php GNU Public License
 * @link     http://imensosoftware.com/recipes
 */

class UserSkillPair extends Model
{
    public $table = "user_skill_pairs";
    public $fillable = ['user_id','from_language_id','to_language_id'];
    public $timestamps = false;


    /**
     * UpdateUserSkillPairs function updates or create the skills pair
     * of a specified user and return boolean value.
     *
     * @param  int user_id
     * @return boolean value
     */
    public static function updateUserSkillPairs($user_id)
    {

        $userLanguageIds = UserSkill::
            select(DB::raw('group_concat(user_skills.language_id) as language_ids'))
            ->where('user_skills.user_id', '=', $user_id)
            ->groupBy('user_skills.user_id')->first();

        UserSkillPair::where('user_id', $user_id)->delete();

        if ($userLanguageIds) {
            $userLanguageIds = explode(',', $userLanguageIds->language_ids);
            if (sizeof($userLanguageIds) >= 2) {
                $userLanguageArray = \App\Models\Language::getLanguageCombination($userLanguageIds, 2);
                foreach ($userLanguageArray as $userLanguage) {
                    UserSkillPair::updateOrCreate(
                        ['user_id' => $user_id,'from_language_id' => $userLanguage[0],'to_language_id' =>
                            $userLanguage[1]],
                        ['user_id' => $user_id,'from_language_id' => $userLanguage[0],'to_language_id' =>
                            $userLanguage[1]]
                    );
                }
            }
        }
    }
}