Departemen = 'nama_departemen', 'nama_manager', 'jumlah_pegawai',
Pegawai = 'nomor_induk_pegawai'、'nama_pegawai'、'id_departemen'、'email'、'telepon'、'gender'、'status'
Pegawai控制器
public function index()
{
$pegawai = Pegawai::Join('departemens','pegawais.id_departemen','=','departemens.id')->paginate(5);
return view ('pegawai.index', compact('pegawai'));
}
public function destroy($id)
{
Pegawai::find($id)->delete();
return redirect()->route('pegawai.index')->with(['success'=> 'Item Berhasil Dihapus']);
}
public function edit($id)
{
$pegawai=Pegawai::join('departemens','pegawais.id_departemen','=','departemens.id')->find($id);
$departemen = Departemen::all();
return view('pegawai.edit',compact('pegawai','departemen'));
}
pegawai索引
@forelse ($pegawai as $item)
<tr>
<td class="text-center">{{ $item->nomor_induk_pegawai }}</td>
<td class="text-center">{{ $item->nama_pegawai }}</td>
<td class="text-center">{{ $item->nama_departemen }}</td>
<td class="text-center">{{ $item->email }}</td>
<td class="text-center">{{ $item->telepon }}</td>
@if($item->gender==0)
<td>Wanita</td>
@else
<td>Pria</td>
@endif
@if($item->status==0)
<td>Inactive</td>
@else
<td>Active</td>
@endif
<td class="text-center">
<form onsubmit="return confirm('Apakah Anda Yakin ?');" action="{{ route('pegawai.destroy', $item->id ) }}" method="POST">
<a href="{{ route('pegawai.edit', $item->id) }}" hljs-string">">Edit</a>
@csrf
@method('DELETE')
<button type="submit" hljs-string">">Hapus</button>
</form>
</td>
</tr>
@empty
<div hljs-string">">
Data Pegawai belum tersedia
</div>
@endforelse
路線網
Route::get('/', function () {
return view('dashboard');
});
Route::resource('/departemen',\App\Http\Controllers\DepartemenController::class);
Route::resource('/pegawai',\App\Http\Controllers\PegawaiController::class);
所以我嘗試了 Hapus 和編輯按鈕。它從表 pegawai 回傳 id_departemen 而不是 id。我認為這是因為我使用連接。我使用 join 是因為我想從 pegawai 的表 departemen 中顯示 nama_departemen。所以我應該怎么做才能解決這個問題。
uj5u.com熱心網友回復:
這里的問題是您要加入兩個都有 ID 列的表。
要解決此問題,您需要具體說明要回傳的列。
例如;
$pegawai = Pegawai::Join('departemens','pegawais.id_departemen','=','departemens.id')->select('pegawais.id','departemens.otherColumnName')->paginate(5);
希望有幫助。
uj5u.com熱心網友回復:
也許餐桌部門應該看起來像這樣
'id', 'nama_departemen', 'nama_manager', 'jumlah_pegawai'
和表 pegawai 應該是這樣的:
'id','nomor_induk_pegawai', 'nama_pegawai', 'id_departemen', 'email', 'telepon', 'gender', 'status'
控制器應如下所示:
Pegawai::select ('pegawai.nomor_induk_pegawai','pegawai.nama_pegawai','departemen.nama_departemen','pegawai.email','pegawai.telepon','pegawai.gender','pegawai.status','pegawai.id as id_pegawai','departemen.id as id_departemen')->Join('departemens','pegawais.id_departemen','=','departemens.id')->paginate(5);
只需選擇您要使用的,id_pegawai 或 id_departemen
如果需要,您可以使用 leftjoin 更改聯接
閱讀此檔案以獲取另一個已解決的
https://laravel.com/docs/9.x/queries#select-statements
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/515055.html
標籤:拉拉维尔加入关系
