?
Current File : /home/sanghavirealty/www/appazwer/Http/Controllers/NavigationController.php
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Navigation;
use App\Models\Widget;
use App\Models\Slugemit;

class NavigationController extends Controller
{
    function navigationCategory () {

        $dataviewer = Navigation::Where('parentid',0)
        ->Where('currentstatus',0)
        ->orderBy('navOrder', 'ASC')
        ->with('navSub.navSub')
        ->get();
        
     return $dataviewer ;

    }


    function updatenav ($id = 0){
        $navCombodata = Navigation::Where('currentstatus',0)->get();
        $typeCombodata =(new WidgetController)->ShowData('NavType');


        if($id > 0 ){

      

        $dataviewer = Navigation::find($id) ;    
        
 
        
    }else{
      $dataviewer = null ;

    }
        
        return view('navigation.updatenav',[ 
            'data'=>$dataviewer , 
            'typeData'=>$typeCombodata ,
            'parentData'=>$navCombodata]);

    }

    function navupdate(Request $req) {

    

        //if (count($req->all()) > 0){

       if (!empty($req->navid) == true) {

            $GetTheNavdata = Navigation::find($req->navid) ; 

                $req->validate([
                'title' => 'bail|required',  
                  ]
                );

              

                $GetTheNavdata->title = $req->title ;

               


                $GetTheNavdata->parentid = $req->parent ;
                $GetTheNavdata->type = $req->type ;
                $GetTheNavdata->URL = $req->URL ;
                $GetTheNavdata->URLRoute = $req->URLroute ;
                $GetTheNavdata->navOrder = $req->navOrder ;
                $GetTheNavdata->description = $req->description ;

                           
                $GetTheNavdata->isDirty('title');
                $GetTheNavdata->isDirty('parent');
                $GetTheNavdata->isDirty('type');
                $GetTheNavdata->isDirty('URL');
                $GetTheNavdata->isDirty('URLroute');
                $GetTheNavdata->isDirty('navOrder');
                $GetTheNavdata->isDirty('description');
                $GetTheNavdata->save();


            } else {

                $name = $req->title ;
                $finalSlug = Slugemit::slugGenerator($name);
                $dbslugchecker = Navigation::Where('slug', $finalSlug)->get();
                if(count($dbslugchecker) == 0) {
        
                  } else {
                    $t=time();
                    $finalSlug = $finalSlug.'_'.$t ;
                  }



                $req->validate([
                  'title' => 'bail|required',
                  'parentid' => 'numeric',
                  'metadescription'=> 'max:180'
                    ]
                  );
        
                  Navigation::insert([
                      
                        'slug'=>$finalSlug,
                        'parentid'=>$req->parent,
                        'type'=>$req->type,
                        'title'=>$req->title,
                        'URL'=>$req->URL,
                        'URLroute'=>$req->URLroute,
                        'navOrder'=>$req->navOrder,
                        'description'=>$req->description
                                           
                      ]);
        
        
                          $getNavID =  Navigation::WHERE('currentstatus','0')
                          ->WHERE('slug',$finalSlug)
                          ->orderBy('id', 'DESC')
                          ->first();

                          if($req->hasfile('uploadImage'))
                          {         
                            foreach($req->file('uploadImage') as $filedoc)
                            {
          
                              $getExt = $filedoc->extension();
                              $random = substr(md5(mt_rand()), 0, 5);
                              $fileName = 'nav'.$getNavID->id.'_'.$random.'.'.$getExt ;        
                              $path = $filedoc->storeAs('public/navigation', $fileName );
          
                              $catImage = Navigation::where('id',$getNavID->id)->update(['image' => $fileName] );                         
                  
                            } 
                          }
                          return redirect('/nav-manager')->with('sucess', 'updated sucessfully');
        
        






            }


            return redirect('/nav-manager')->with('sucess', 'updated sucessfully');


    }

function navManager(){

    $dataviewer = Navigation::Where('currentstatus',0)
    ->with('getParentTitle')
    ->paginate(5);   
    return view('navigation.navmanager',['data'=>$dataviewer]);

    // ->with('getParentTitle')


}



    function ShowNavigation ($type){

        $dataviewer = Navigation::Where('type',$type)
        ->Where('parentid',0)
        ->Where('currentstatus',0)
        ->orderBy('navOrder', 'ASC')
        ->with('navSub.navSub')
        ->get();
        
     return $dataviewer ;

        //  return view('navigation.headernavigator',['data'=>$dataviewer]);


    }

    function ShowNavigationLinks ($type){

        $dataviewer = Navigation::Where('type',$type)
        ->Where('parentid',0)
        ->Where('currentstatus',0)
        ->orderBy('navOrder', 'ASC')
        ->get();
        
     return $dataviewer ;

        //  return view('navigation.headernavigator',['data'=>$dataviewer]);


    }


}