laravel - 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 子句,但我不知道怎么做,我做不到,你能帮帮我吗?
解决方案
在 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
推荐阅读
- python - 为什么我的 pyspark 程序中需要 os.environ?
- node.js - postgresql 查询在 node.js 中失败,但在 pgadmin 中成功
- vba - 自定义功能区 Visio 2016 时找不到“宏”选项
- python - 多选 Django 不断抛出无效值
- python - 为 Networkx 中的连接组件列表分配编号
- java - google calendar api 说 400 bad request 由于无效值(会议属性)
- node.js - Twilio autopilot whatsapp 使用 nodeJS 发起与电话的对话
- python - Python 线程无法启动
- phoenix-framework - 如何使用 Phoenix LiveView 处理表单文件?
- iis - IIS 10.0 SSI 错误:已为此虚拟路径禁用 #EXEC 调用