首页 > 解决方案 > Laravel 控制器中的 where 子句

问题描述

我是编程和 laravel 的新手,我想问如何通过使用当前 mahasiswa_id 登录的 Isilowongan 表中的 mahasiswa_id 属性检测它来显示尚未填充到 Isilowongan 表中的 Reqlowongan 表中的数据。所以当用户登录后,他们只看到他们没有在 Isilowongan 注册的 Reqlowongan(Reqlowongan 是我的表单,Isilowongan 是用户填写的表单的答案)怎么做?

这是我的桌子: https ://i.stack.imgur.com/9vWcm.png

这是我的控制器:

public function index()
{
    $role = auth()->user()->role;
    $id = auth()->user()->id;
    if($role =='mahasiswa'){
        $lowongan = Reqlowongan::all();
        return view('indexMhs', compact(['lowongan']));
    }if($role =='instansi'){
        $lowongan = auth()->user()->instansi->reqlowongan;
        return view('indexIns', compact(['lowongan']));  
    }else{
        $lowongan = Reqlowongan::all();
        return view('IndexKp', compact(['lowongan']));  
    }
}

这是我的刀片

@foreach($lowongan as $lowongan)
        <tr>
            <th scope="row">{{ $loop->iteration }}</th>
            <td>{{ $lowongan->instansi->nama_instansi}}</th>
            <td>{{ $lowongan->jenis_lowongan}}</th>
            <td>{{ $lowongan->created_at->format('d/m/Y')}}</td>
            <td class="text-center">
                <a href="/instansi/{{$lowongan->id}}/list_mahasiswa" class="badge badge-warning ml-2">DAFTAR </a>
            </td>
        </tr>
      @endforeach

我已经尝试使用 where 子句和 if 子句,但我不知道怎么做,我做不到,你能帮帮我吗?

标签: laravelif-statementeloquentwhere-clause

解决方案


在 if 语句中从用户表中找到角色后,您必须像这样将表连接在一起

public function index()
{
    $role = auth()->user()->role;
    $id = auth()->user()->id;
    if($role =='mahasiswa'){
        $lowongan = user::join('mahasiswa','mahasiswa.user_id','user.id')
                  ->join('isi_lowongan','isi_lowonan.mahasiswa_id','mahasiswa.id')
               ->join('req_lowongan','req_lowonan.id','isi_lowonan.reqlowongan_id') 
            ->join('instansi','instansi.id','req_lowonan.instansi_id')
            //->where('user.id','$id')
        ->select('req_lowonan.*','instansi.nama_instansi as nama_instansi');
        return view('indexMhs', compact(['lowongan']));
    }if($role =='instansi'){
        $lowongan = user::join('instansi','instansi.user_id','user.id')               
     ->join('req_lowongan','req_lowonan.instansi_id','instansi.id') 
        ->select('req_lowonan.*','instansi.nama_instansi as nama_instansi');
        return view('indexIns', compact(['lowongan']));  
    }else{
        $lowongan = user::join('instansi','instansi.user_id','user.id')               
     ->join('req_lowongan','req_lowonan.instansi_id','instansi.id') 
        ->select('req_lowonan.*','instansi.nama_instansi as nama_instansi');
        return view('IndexKp', compact(['lowongan']));  
    }
}

完毕

@foreach($lowongan as $item)
        <tr>
            <th scope="row">{{ $loop->iteration }}</th>
            <td>{{ $item->nama_instansi}}</th>
            <td>{{ $item->jenis_lowongan}}</th>
            <td>{{ $item->created_at->format('d/m/Y')}}</td>
            <td class="text-center">
                <a href="/instansi/{{$item->id}}/list_mahasiswa" class="badge badge-warning ml-2">DAFTAR </a>
            </td>
        </tr>
      @endforeach

推荐阅读