mercredi 12 octobre 2016

Query Exception on Lavarel 5

I'm currently learning lavarel and developing existed file manager. When I put in my localhost, I have no issue when I log in as administrator, but it shows some error when I log in as staff.

QueryException in Connection.php line 662: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'accessdetail.targetUserId' in 'where clause' (SQL: select accessheader.filePath from accessheader inner join accessdetail on accessheader.id = accessdetail.accessId where accessdetail.targetUserId = 3)

I don't find any 'targetUserId' either on database and the code so, I still wonder how Laravel defined those query.

accessheader consists of id, accessTypeId, name, parentAccessId, filePath, userId, type.

accessdetail consists of id, sharedTo, accessId

FileController.php

public function index(Request $request){
    $folder = $request::get('folder');
    $data = $this->manager->folderInfo($folder);
    $login = auth()->user();

    /*
     * Base Folder?
     * */

    $ownedFolder = '';

    if (!is_null($login->staffId)) {
        $ownedFolder = AccessHeader::where('name',$login->staffs['position'])->first();
    } elseif (!is_null($login->pengurusId)) {
        $ownedFolder = AccessHeader::where('name',$login->pengurus['department'])->first();
    }

    $baseFolder = $ownedFolder['filePath'];                              // /Media/

    $baseFolder = substr($baseFolder, 0, strlen($baseFolder) - 1);          // /Media
    $ownedFolder = Str::is($baseFolder,$folder);
    $baseFolder = Str::is($baseFolder . '*',$folder);                    // 1

    /*if($folder == $baseFolder){
        $baseFolder = 1;
    }else if($folder != $baseFolder){
        $baseFolder = 0;
    };*/


    /*
     * Others Folder?
     * */
    //return $data['folder'];

    $nowFolder = AccessHeader::where('filePath','like',$data['folder'].'%')->first();

    $sharedFolder = AccessDetail::where('accessId',$nowFolder['id'])->get();

    $baseSharedFolder = $othersFolder = $othersBaseFolder = '';

    if($sharedFolder->isEmpty()){
        $sharedFolder = AccessDetail::where('accessId',$nowFolder['parentAccessId'])->get();
        if(!$sharedFolder->isEmpty()){
            if($nowFolder['userId'] == $login->id && $nowFolder['parentAccessId'] == null) {
                $othersFolder = 0;
            }else {
                $othersFolder = 1;
            }
        }else{

            $othersFolder = 0;
            if($nowFolder['parentAccessId'] != null) {
                $baseSharedFolder = 0;
            }else{
                $baseSharedFolder = 1;
            }
        }
    }

    else{
        if($nowFolder['userId'] == $login->id && $nowFolder['parentAccessId'] == null){ //folderkita
            $othersFolder = 0;
            $baseSharedFolder = 1;

    $accessh = '';

    $flag[0] = 2;
    $flag[1] = 2;
    $loginArray = '';

    if (!is_null($login->staffId)) {
        $loginArray[] = $login->staffs->position;
    }elseif(!is_null($login->pengurusId)){
        $loginArray[] = $login->pengurus->department;
    }
        $aheadsFolder = AccessHeader::select('filePath')
            ->where('userId', $login->id)
            ->where('type', 'folder')
            ->whereNotIn('name',$loginArray)
            ->get();

        $aheadsFile = AccessHeader::select('filePath')
            ->where('userId', $login->id)
            ->where('type', 'file')
            ->get();

    $shareTo = AccessHeader::where('filePath',$folder.'/');

    $sharedToSekretarisJenderal = $sharedToWakilSekretarisJenderal = $sharedToSekretaris = $sharedToFundraiser
    = $sharedToKeuangan = $sharedToLiteratur = $sharedToMedia = $sharedToUmum
    = $sharedToPengurusHarianNasional = $sharedToBadanPengurusNasional = $sharedToBadanPembina = $sharedToBadanPengawas =  0;

    if(!$shareTo->get()->isEmpty()) {
        if (!$shareTo->first()->accessDetails->where('shareTo','Badan Pembina')->isEmpty()){
            $sharedToBadanPembina = 1;
        };

        if (!$shareTo->first()->accessDetails->where('shareTo','Badan Pengawas')->isEmpty()){
            $sharedToBadanPengawas = 1;
        };

        if (!$shareTo->first()->accessDetails->where('shareTo','Pengurus Harian Nasional')->isEmpty()){
            $sharedToPengurusHarianNasional = 1;
        };

        if (!$shareTo->first()->accessDetails->where('shareTo','Badan Pengurus Nasional')->isEmpty()){
            $sharedToBadanPengurusNasional = 1;
        };

        if (!$shareTo->first()->accessDetails->where('shareTo','Wakil Sekretaris Jenderal')->isEmpty()){
            $sharedToWakilSekretarisJenderal = 1;
        }

        ;if (!$shareTo->first()->accessDetails->where('shareTo','Sekretaris Jenderal')->isEmpty()){
            $sharedToSekretarisJenderal = 1;
        };

        if (!$shareTo->first()->accessDetails->where('shareTo','Sekretaris')->isEmpty()){
            $sharedToSekretaris = 1;
        }

        if (!$shareTo->first()->accessDetails->where('shareTo','Keuangan')->isEmpty()){
            $sharedToKeuangan = 1;
        }

        if (!$shareTo->first()->accessDetails->where('shareTo','Fundraiser')->isEmpty()){
            $sharedToFundraiser = 1;
        }

        if (!$shareTo->first()->accessDetails->where('shareTo','Media')->isEmpty()){
            $sharedToMedia = 1;
        }

        if (!$shareTo->first()->accessDetails->where('shareTo','Umum')->isEmpty()){
            $sharedToUmum = 1;
        }

        if (!$shareTo->first()->accessDetails->where('shareTo','Literatur')->isEmpty()){
            $sharedToLiteratur = 1;
        }
    }

    return view('file.file_lists',compact(
        'data',
        'sharedToBadanPembina',
        'sharedToBadanPengawas',
        'sharedToPengurusHarianNasional',
        'sharedToBadanPengurusNasional',
        'sharedToSekretarisJenderal',
        'sharedToWakilSekretarisJenderal',
        'sharedToSekretaris',
        'sharedToKeuangan',
        'sharedToFundraiser',
        'sharedToUmum',
        'sharedToLiteratur',
        'sharedToMedia',
        'myFolder','login','aheadsFolder','aheadsFile','baseFolder','accessh','flag','othersFolder','baseSharedFolder'));
}



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire