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
我是编程新手,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