Laravel 控制器中的 where 子句

Laravel where clause in controller

我是编程新手,laravel,我想问一下如何显示来自 Reqlowongan table 的数据,通过使用Isilowongan table 中的 mahasiswa_id 属性,当前 mahasiswa_id 正在登录。因此,当用户登录时,他们只会看到他们没有在 Isilowongan 中注册的 Reqlowongan(Reqlowongan 是我的表单,而 Isilowongan 是用户填写的表格的答案)怎么做?

这是我的 table: 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']));  
    }
}

这是我的blade

@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 子句,但我不知道怎么做,我做不到,你能帮帮我吗?

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

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