Skip to main content

Laravel Controller For CRUD code

 <?php


namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\redirect;
use Illuminate\Support\Facades\Validator;
// use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Session;
use App\Classes\Constants;
use Illuminate\Support\Facades\Auth;
use App\Models\otp;
use App\Models\UserTemp;
use App\Models\User;
use App\Rules\Url_Validation;
use Mail;

use DB;

class UserController extends Controller
{

   

    public function registerTemp(Request $request)
    {
             $rules = [
                    'first_name'    =>  ['required', 'string', 'max:255'],
                    'last_name'     =>  ['required', 'string', 'max:255'],
                    'country'       =>  ['required', 'string', 'max:255'],
                    'state'         => ['required', 'string', 'max:255'],
                    'mobile_number' => ['required','max:20'],
                    'email'         => ['required', 'string', 'email',
                                            'max:255', 'unique:users'],
                    'password'      => ['required', 'string', 'min:8', 'confirmed'],            
            ];
                if ($request->cities != "") {
                     $rules['cities']        = ['string', 'max:255'];
                }
                if ($request->country  == '101') {
                    $rules['mobile_number']        = ['digits:10','unique:users'];
                }
            $validate = Validator::make($request->all(), $rules);
            if ($validate->fails()) {
                 return response()->json(['status' => Constants::FAILED_STATUS,
                'error' => $validate->errors(), 'message' => 'validation error'],422);
            }
            // $otp = rand(1000, 9999);
            $otp = 1234;
            $otp_row = new otp();
            $otp_row->receiver = $request->email;
            $otp_row->otp = $otp;
            $otp_row->otp_time = time();


           
            $name = $request->first_name;
            $email = $request->email;
            Mail::send('emails/otpemail', ['email'=>$email,'name'=>$name,'otp'=>$otp], function ($m) use ($email) {
                $m->from('info@thetechtales.com', 'OLIVER');
                $m->to($email, 'user')->subject('OTP Varification.');
            });
            $otp_row->save();
            if(!empty($request->city)){
                $city_id        = $request->city;
            }else{
                $city_id        =   "";
            }

            $userTemp = new UserTemp();
            $userTemp->first_name        =  $request->first_name;
            $userTemp->last_name         =  $request->last_name;
            $userTemp->country_id        =  $request->country;
            $userTemp->state_id          =  $request->state;
            $userTemp->city_id           =  $city_id;
            $userTemp->email             =  $request->email;
            $userTemp->country_phone_code=  $request->phonecode;
            $userTemp->mobile_number     =  $request->mobile_number;
            $userTemp->password          =  $request->password;
            $userTemp->user_role         =  $request->user_role;
            $userTemp->save();
            return response()->json(['status' => 'success', 'data' => $otp]);
    }

    public function resendOtp(Request $request){

            $otp = 1234;
            $otp_row = new otp();
            $otp_row->receiver = $request->email;
            $otp_row->otp = $otp;
            $otp_row->otp_time = time();
           
            $name = $request->first_name;
            $email = $request->email;
            Mail::send('emails/otpemail', ['email'=>$email,'name'=>$name,'otp'=>$otp], function ($m) use ($email) {
                $m->from('info@thetechtales.com', 'OLIVER');
                $m->to($email, 'user')->subject('OTP Varification.');
            });
            $otp_row->save();
            return response()->json(['status' => 'success', 'data' => $otp]);
    }


    public function testotp(){
        // $otp = rand(1000, 9999);
        $otp = 1234;

        $email = "rktech7835@mail.com";
        $name = "Raj Kumar";
        Mail::send('emails/otpemail', ['email'=>$email,'name'=>$name,'otp'=>$otp], function ($m) use ($email) {
            $m->from('info@thetechtales.com', 'Referral Hiring');
            $m->to($email, 'user')->subject('Welcome to Referral Hiring');
        });
    }
   
    public function SaveCompanyInfo(Request $request){

        if(Session::has('vendorid')){
            $id = $request->session()->get('vendorid');
            $user = User::where('id',$id)->first();
         }else{
            $user = Auth::user();
            $id   = $user->id;
         }

            $regex = '/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/';
        $rules = [
            'company_name'      => ['required'],                
            'b_contect_no'      => ['required'],  
            'b_email'           => ['required', 'string', 'email', 'max:255','unique:users'],  
            'b_estbish_year'    => ['required'],
            'b_legalstatus_firm'=> ['required'],
            'b_nature'          => ['required'],
            'emp_number'        => ['required'],            
            'annual_turnover'   => ['required'],
            'exports_to'        => ['required'],
            // 'company_overview'  => ['required'],
            'office_address'    => ['required'],
            // 'company_country'   => ['required'],
            'company_state'     => ['required'],
            'company_pin_code'  => ['required'],
            'company_web_link'  => ['required',new Url_Validation],
            'gst_number'        => ['required'],                          
         ];

        if ($request->cities != "") {
             $rules['company_city']        = ['string', 'max:255'];
        }
        if ($request->country  == '101') {
            $rules['b_contect_no']        = ['digits:10'];
        }
         $messages = [
            'b_contect_no.required' => 'We need to know your Bussiness Mumber!',
            'b_contect_no.unique'   => 'The Bussiness Number has already been taken.!',
            'b_email.unique'        => 'The Bussiness Email Address has already been taken.!',
            'b_email.required'      => 'We need to know your Bussiness Email Address!',
            'b_estbish_year.required' => 'The Year of Establishment field is required.',
            'b_legalstatus_firm.required' => 'The Bussiness Legal Status of Firm field is required.',
            'b_nature.required' => 'The Bussiness Nature field is required.',
            'emp_number.required' => 'The Employee Number field is required.',
           
        ];
        if($user->country_id == '101'){
            $messages['gst_number.required'] = 'The GST Number field is required.';
        }else{
            $messages['gst_number.required'] = 'The TAX Number field is required.';
        }
       
        $validate = Validator::make($request->all(), $rules, $messages);
        if ($validate->fails()) {
            return response()->json(['status' => Constants::FAILED_STATUS, 'error' => $validate->errors(), 'message' => 'validation error'],422);
        }
       

          if (empty($request->company_video_link)) {
           $company_video = "";
           }else{
                $yt_url = $request->company_video_link;
                $url_parsed_arr = parse_url($yt_url);
                if(!filter_var($yt_url, FILTER_VALIDATE_URL) === false) {
                        if ($url_parsed_arr['host'] == "www.youtube.com" && $url_parsed_arr['path'] == "/watch" && substr($url_parsed_arr['query'], 0, 2) == "v=" && substr($url_parsed_arr['query'], 2) != "") {
                            $value = explode('v=',$yt_url);
                            $video_id  = $value[1];
                            // https://www.youtube.com/embed/XFsuRxospbU
                            $company_video =  $video_id;
                       
                       }else{
                         $company_video = "";
                       }
                } else {
                         $company_video = "";
                       }
                }
         $companyinfo['company_video_link']  =   $company_video;
    // upload company logo card
        // $company_logo = "";
        // if (!empty($request->file('company_logo'))) {
        //     $company_logo = $id.'_company_logo'.$randname.'.'.$request->file('company_logo')->extension();
        //     $request->company_logo->storeAs('public/company_logo',$company_logo); // upload image in storage/app/public/image
        // }
    // upload gst cerificate  card
        // $gst_certificate = "";
        // if (!empty($request->file('gst_certificate'))) {
        //     $gst_certificate = $id.'_gst_certificate'.$randname.'.'.$request->file('gst_certificate')->extension();
        //     $request->gst_certificate->storeAs('public/gst_certificate',$gst_certificate); // upload image in storage/app/public/image
        // }
    // upload pan card
        // $pan_card = "";
        // if(!empty($request->file('pan_card'))){
        //     $pan_card = $id.'_pan_card'.$randname.'.'.$request->file('pan_card')->extension();
        //     $request->pan_card->storeAs('public/pan_Card',$pan_card); // upload image in storage/app/public/image
        // }
    // upload tan_certificate
        // $tan_certificate = "";
        // if (!empty($request->file('tan_certificate'))) {
        //     $tan_certificate    = $id.'_tan_certificate'.$randname.'.'.$request->file('tan_certificate')->extension();
        //     $request->tan_certificate->storeAs('public/tan_certificate',$tan_certificate); // upload image in storage/app/public/image
        // }
 
    // $companyinfo = User::find($id);          
       
        $companyinfo['company_name']      =   $request->company_name;
        $companyinfo['b_contect_no']      =   $request->b_contect_no;
        $companyinfo['b_email']           =   $request->b_email;
        $companyinfo['b_estbish_year']    =   $request->b_estbish_year;
        $companyinfo['b_legalstatus_firm']=   $request->b_legalstatus_firm;
        $companyinfo['b_nature']          =   $request->b_nature;
        $companyinfo['emp_number']        =   $request->emp_number;
        $companyinfo['annual_turnover']   =   $request->annual_turnover;
        $export_to = "";
            if (!empty($request->exports_to)) {
                $export_to                 = implode(',', $request->exports_to);
                $companyinfo['exports_to'] =   $export_to;
            }

        $companyinfo['company_overview']  =   $request->company_overview;
        $companyinfo['office_address']    =   $request->office_address;            
        $companyinfo['company_country']   =   $request->company_country;            
        $companyinfo['company_state']     =   $request->company_state;            
        $companyinfo['company_city']      =   $request->company_city;
        $companyinfo['company_pin_code']  =   $request->company_pin_code;
        $companyinfo['company_web_link']  =   $request->company_web_link;
        $companyinfo['gst_number']        =   $request->gst_number;
       
        $companyinfo['signup_status']       =   '1';

        // $companyinfo['company_logo']      =   $company_logo;
        // $companyinfo['gst_certificate']   =   $gst_certificate;              
        // $companyinfo['pan_card']          =   $pan_card;  
        // $companyinfo['tan_certificate']   =   $tan_certificate;

        $update =  DB::table('users')
            ->where('id', $id)  // find your user by their email
            ->limit(1)  // optional - to ensure only one record is updated.
            ->update($companyinfo);
         // return response()->json(['status' => Constants::FAILED_STATUS, 'data' => $request->file('company_logo')->extension()]);
        return response()->json(['status' => 'success', 'data' => $companyinfo]);

    }


    public function upload_comapny_image(Request $request){
        $rules = [        
            'company_logo'      => 'max:10000|mimes:jpeg,jpg,png',                
            'gst_certificate'   => 'max:10000|mimes:jpeg,jpg,png,pdf',                                
            'pan_card'          => 'max:10000|mimes:jpeg,jpg,png',
            'tan_certificate'   => 'max:10000|mimes:jpeg,jpg,png,pdf',            
         ];
        $validate = Validator::make($request->all(), $rules);
        if ($validate->fails()) {
            return response()->json(['status' => Constants::FAILED_STATUS, 'error' => $validate->errors(),],422);
        }
        // $user = Auth::user();
        if(Session::has('vendorid')){
            $id = $request->session()->get('vendorid');
            $user = User::where('id',$id)->first();
         }else{
            $user = Auth::user();
            $id   = $user->id;
         }


        $randname = rand(1000,9999);
        // return response()->json(['status' => 'success', 'data' => $request->file('company_logo')->extension()]);

    // upload company logo card
        $company_logo = "";
        if (!empty($request->file('company_logo'))) {
            if(file_exists('storage/app/public/company_logo/'.$user->company_logo)){
             @unlink('storage/app/public/company_logo/'.$user->company_logo);
            }
            $company_logo = $id.'_company_logo'.$randname.'.'.$request->file('company_logo')->extension();
            $request->company_logo->storeAs('public/company_logo',$company_logo); // upload image in storage/app/public/image
            $companyinfo['company_logo']      =   'storage/app/public/company_logo/'.$company_logo;
            $data = 'logo';
            $image = $company_logo;
        }
    // upload gst cerificate  card
        $gst_certificate = "";
        if (!empty($request->file('gst_certificate'))) {
            if(file_exists('storage/app/public/gst_certificate/'.$user->gst_certificate)){
             @unlink('storage/app/public/gst_certificate/'.$user->gst_certificate);
            }
            $gst_certificate = $id.'_gst_certificate'.$randname.'.'.$request->file('gst_certificate')->extension();
            $request->gst_certificate->storeAs('public/gst_certificate',$gst_certificate); // upload image in storage/app/public/image
            $companyinfo['gst_certificate']   =   $gst_certificate;
            $data = 'gst';
            $image =  $gst_certificate;        
            }
    // upload pan card
        $pan_card = "";
        if(!empty($request->file('pan_card'))){
            if(file_exists('storage/app/public/pan_Card/'.$user->pan_card)){
             @unlink('storage/app/public/pan_Card/'.$user->pan_card);
            }
            $pan_card = $id.'_pan_card'.$randname.'.'.$request->file('pan_card')->extension();
            $request->pan_card->storeAs('public/pan_Card',$pan_card); // upload image in storage/app/public/image
            $companyinfo['pan_card']          =   $pan_card;
            $data = 'pan';  
            $image = $pan_card;
        }
    // upload tan_certificate
        $tan_certificate = "";
        if (!empty($request->file('tan_certificate'))) {
            if(file_exists('storage/app/public/tan_certificate/'.$user->tan_certificate)){
             @unlink('storage/app/public/tan_certificate/'.$user->tan_certificate);
            }
            $tan_certificate    = $id.'_tan_certificate'.$randname.'.'.$request->file('tan_certificate')->extension();
            $request->tan_certificate->storeAs('public/tan_certificate',$tan_certificate); // upload image in storage/app/public/image
            $companyinfo['tan_certificate']   =   $tan_certificate;
            $data = 'tan';
            $image =  $tan_certificate;
        }

        $update =  DB::table('users')
            ->where('id', $id)  // find your user by their email
            ->limit(1)          // optional - to ensure only one record is updated.
            ->update($companyinfo);
        return response()->json(['status' => 'success', 'data' => $data , 'image' => $image]);
 
 
    }


    function Delete_company_image(Request $request){
        if(Session::has('vendorid')){
            $id = $request->session()->get('vendorid');
            $user = User::where('id',$id)->first();
         }else{
            $user = Auth::user();
            $id   = $user->id;
         }
            if($request->image == 'logo'){
                if(file_exists('storage/app/public/company_logo/'.$user->company_logo)){
                    @unlink('storage/app/public/company_logo/'.$user->company_logo);
                }
                $companyinfo['company_logo']      =  "";
            }
            if($request->image == 'gst'){
                if(file_exists('storage/app/public/gst_certificate/'.$user->gst_certificate)){
                    @unlink('storage/app/public/company_logo/'.$user->gst_certificate);
                }
                 $companyinfo['gst_certificate']      =  "";
            }
             if($request->image == 'pan'){
                if(file_exists('storage/app/public/pan_Card/'.$user->pan_card)){
                    @unlink('storage/app/public/pan_Card/'.$user->pan_card);
                   }
                $companyinfo['pan_card']      =  "";
            }
            if($request->image == 'tan'){
                if(file_exists('storage/app/public/tan_certificate/'.$user->tan_certificate)){
                    @unlink('storage/app/public/tan_certificate/'.$user->tan_certificate);
                   }
                $companyinfo['tan_certificate']      =  "";
            }
            $update =  DB::table('users')
            ->where('id', $id)  // find your user by their email
            ->limit(1)          // optional - to ensure only one record is updated.
            ->update($companyinfo);
            return response()->json(['status' => 'success', 'image' => $request->image]);
    }

    public function showcompanyinfo(Request $request){
        // $user = Auth::user();

        if(Session::has('vendorid')){
            $id = $request->session()->get('vendorid');
            $user = User::where('id',$id)->first();
           
        }else{
            return redirect()->to('/vendorSignupOne');
        }
        // if(!empty($user->id)){

        //     if($user->user_role != '2'){
        //         return redirect()->to('/');
        //     }  
        // }else{
        //     return redirect()->to('/vendorSignupOne');
        // }

        // $state=DB::table('state')->get();
        $country = DB::table('countries')->where('status','1')->get();
        $allcountry = DB::table('countries')->get();
        $state = DB::table('states')->where('country_id',$user->country_id)->get();
        $city = DB::table('cities')->where('state_id',$user->state_id)->get();
           
        if(empty($user)){
               
            return view('auth.register',compact('country'));
           }
        return view('vendor.companyinfo',compact('country','allcountry','user','state','city'));
    }


// vendor signup form ////////////////////////////////

   public function vendorSignUpOne(){

    // $user = Auth::user();
        // if(Session::has('vendorid')){
        //     return redirect()->to('/showcompanyinfo');
        // }

        $country = DB::table('countries')->where('status','1')->get();
        // dd($country);
       return view('auth.register',compact('country'));
   }

   public function  thanks(){
        // $user = Auth::user();
        // if(!empty($user)){
        //     // if($user->company_name == ""){
        //         Auth::logout();
        //     // }
        // }
       // return redirect('/');
        $country ='';
        if (session()->has('sessioncountry')) {
            $country = session()->get('sessioncountry');
        }
        Session::flush();
        if ($country != '') {
           Session::put([
                'sessioncountry'    =>$country,
            ]);
        }

        return view('vendor.thanks');
    }
//    Normal User signup form //////////////////////


    public function signup(){
        $user = Auth::user();
        $country = DB::table('countries')->get();
       return view('user_signup',compact('country'));
    }


   public function country(Request $request)  {
        $country = DB::table('countries')->get();
        $countryoptions = '';
        foreach ($country as $value) {
            $countryoptions.='<option value="'.$value->id.'">'.$value->name.'</option>';
        }
        return response()->json(['status' => 'success', 'data' => $countryoptions]);
    }

    public function getState(Request $request)  {
        $user = Auth::user();
        if(empty($user)){
            $country_id = $request->counId;
        }else{
            $country_id = $user->country_id;
        }
        $state      = DB::table('states')->where('country_id',$country_id)->get();
        $country    = DB::table('countries')->where('id',$country_id)->first();
        $stateoptions = '<option value="">Select State*</option>';
        foreach ($state  as $value) {
            $stateoptions.='<option value="'.$value->id.'">'.$value->name.'</option>';
        }
        return response()->json(['status' => 'success', 'data' => $stateoptions,'phoneCode' => $country->phonecode]);
   
    }

    public function getcities(Request $request)  {
        $cities      = DB::table('cities')->where('state_id',$request->stateId)->get();
        // return print_r($cities);
        if (count($cities) == 0) {
            return response()->json(['status' => 'success', 'data' => 'null']);
        }
        // $country    = DB::table('countries')->where('id',$request->counId)->first();
        $citiesoptions = '<option value="">Select City*</option>';
        foreach ($cities  as $value) {
            $citiesoptions.='<option value="'.$value->id.'">'.$value->name.'</option>';
        }
        return response()->json(['status' => 'success', 'data' => $citiesoptions]);
    }

    public function youtube_thumbnail(Request $request){
        // return response()->json(['status' => 'success' , 'data'=> $request->yt_url]);
        // echo $request->yt_url;
        // die();
    if (empty($request->yt_url)) {
       $company_video = "";
       }else{
            $yt_url = $request->yt_url;
            $url_parsed_arr = parse_url($yt_url);

            if(!filter_var($yt_url, FILTER_VALIDATE_URL) === false) {
                    if ($url_parsed_arr['host'] == "www.youtube.com" && $url_parsed_arr['path'] == "/watch" && substr($url_parsed_arr['query'], 0, 2) == "v=" && substr($url_parsed_arr['query'], 2) != "") {
                        $value = explode('v=',$yt_url);
                        $video_id  = $value[1];
                        $company_video =  '<img src="https://img.youtube.com/vi/'.$video_id.'/hqdefault.jpg" width="50" height="50" onclick="show_input_video_link()"><a href="javascript:void(0)" onclick="delete_video_link()"><span>&#x274C</span></a>';
                        return response()->json(['status' => 'success', 'data' => $company_video]);
                       
                   }else{
                         return response()->json(['status' => 'error', 'data' => "Enter valid youtube Video url"]);
                   }
            } else {
                   return response()->json(['status' => 'error', 'data' => "Enter valid youtube Video url"]);
                }
        }
    }
    public function logout(){
        Auth::routes();
        $country ='';
        if (session()->has('sessioncountry')) {
            $country = session()->get('sessioncountry');
        }
        Session::flush();
        auth()->logout();
         
        if ($country != '') {
           Session::put([
                'sessioncountry'  => $country,
            ]);
        }
    return Redirect::to('/user/login');
    }
}

Comments

Popular posts from this blog

Privacy Policy

  Privacy Policy for Us WheelTech Privacy Policy Last updated: July 01, 2023 This Privacy Policy describes Our policies and procedures on the collection, use and disclosure of Your information when You use the Service and tells You about Your privacy rights and how the law protects You. We use Your Personal data to provide and improve the Service. By using the Service, You agree to the collection and use of information in accordance with this Privacy Policy. This Privacy Policy has been created with the help of the  TermsFeed Privacy Policy Generator . Interpretation and Definitions Interpretation The words of which the initial letter is capitalized have meanings defined under the following conditions. The following definitions shall have the same meaning regardless of whether they appear in singular or in plural. Definitions For the purposes of this Privacy Policy: Account  means a unique account created for You to access our Service or parts of our Service. Affiliate ...

Curd Operation Using PDO IN PHP

  db_connect.php <?php     $con = new mysqli ( 'localhost' , 'root' , '' , 'xceptmedia' );     if ( $con -> connect_error ){         printf ( "Connect failed:" , $con -> connect_error );         exit ();     }   ? > Database Queries for Table   Database: `xceptmedia` -- phpMyAdmin SQL Dump -- version 5.1.3 -- https://www.phpmyadmin.net/ -- -- Host: 127.0.0.1 -- Generation Time: May 15, 2022 at 05:24 AM -- Server version: 10.4.24-MariaDB -- PHP Version: 7.4.28 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO" ; START TRANSACTION ; SET time_zone = "+00:00" ; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */ ; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */ ; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */ ; /*!40101 SET NAMES utf8mb4 */ ; -- -- Database: `xceptmedia` -- -- -------------------------------------------------------- -- -- Table st...

How to upload image in php with validation || image upload in php

In this code we learn about How to upload a image or any type of file in our server using php. this is a code of codigniter 3. but doing some chages we can user this code in our core php.  and any other php framework also public function update_profile(){ if(!($this->session->has_userdata('user_email'))){          redirect('student/login');     }else{        $email= $this->session->userdata('user_email');         if($_FILES['profile']['name'] != ''){             $img_size   =  $_FILES['profile']['size'];             if($img_size < 5242880){                 $filename = $_FILES['profile']['name'];                 $ext = pathinfo($filename,PATHINFO_EXTENSION);                 $valid_ext...