Postingan lainnya
Cara mendapat data dari tabel lain sesuai nama dalam database yang sama Laravel
Jadi, saya memiliki 2 tabel, Tabel Penyedia dan Tabel Pekerjaan. Penyedia dapat memiliki banyak Pekerjaan, dan satu Pekerjaan hanya bisa dimiliki satu Penyedia. Mengusung one to many relationship. Berikut tabel nya:
Tabel Pekerjaan
tabel pekerjaan sql.jpg
Tabel Penyedia
tabel penyedia sql.jpg
Jadi di sini saya menggunakan LARAVEL sebagai framework utama. Saya ada membuat tabel penyedia dengan tombol aksi, yg dimana tombol tersebut akan menampilkan list data pekerjaan sesuai dengan nama penyedia yg kita klik tombol nya. Dapat dilihat di tabel database di atas, tabel pekerjaan memiliki "nama" penyedia sebagai acuan. Bagaimana cara agar saya bisa menampilkan list pekerjaan sesuai dengan "nama" penyedia dari tabel penyedia?
Berikut adalah file model nya:
Pekerjaan.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model as Eloquent;
class Pekerjaan extends Eloquent
{
use HasFactory;
protected $guarded = [];
public function penyedia(){
return $this->belongsTo(penyedia::class);
}
}
Penyedia.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model as Eloquent;
class Penyedia extends Eloquent
{
use HasFactory;
protected $guarded = [];
public $timestamps = false;
public function pekerjaan(){
return $this->hasMany(pekerjaan::class);
}
}
Dan in file controller saya:
public function showpekerjaan(){
$pekerjaan = pekerjaan::with('penyedia.nama');
return view('admin.showpekerjaan', compact('pekerjaan'));
}
Dan ini file blade yg ingin saya tampilkan
tabelnilai_pekerjaan.blade.php (menampilkan data pekerjaan sesuai dengan nama penyedia yg dipilih)
<section class="content">
<div class="container-fluid">
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-header">
<h3 class="card-title">Tabel Nilai Pekerjaan</h3>
</div>
<!-- /.card-header -->
<div class="card-body table-responsive">
<table id="tabelpekerjaan" class="table table-bordered">
<thead>
<tr>
<th style="width: 10px">No.</th>
<th>Paket Pekerjaan</th>
<th>Nama Perusahaan</th>
<th>Lokasi Pekerjaan</th>
<th>HPS</th>
<th>Nilai Kontrak</th>
<th style="width: 120px">Aksi</th>
</tr>
</thead>
<tbody>
@php $no = 1; @endphp
@foreach ($pekerjaan as $pekerjaans)
@foreach($pekerjaans->penyedia as $penyedias)
<tr>
<td>{{$no++}}</td>
<td>{{$penyedias->pekerjaan}}</td>
<td>{{$penyedias->nama}}</td>
<td>{{$penyedias->lokasi}}</td>
<td>Rp. {{number_format($penyedias->hps,0,',',',')}}</td>
<td>Rp. {{number_format($penyedias->nilai_kontrak,0,',',',')}}</td>
<td>
<a href="#" type="button" class="btn btn-primary btn-block btn-outline-primary">Edit</a>
</td>
</tr>
@endforeach
@endforeach
</tbody>
</table>
</div>
<!-- /.card-body -->
</div>
<!-- /.card -->
</div>
</section>
Hasil yg ditampilkan kosong, dan tidak ada error di console. Mohon bantuan dan pencerahan nya, Terima kasih.
2 Jawaban:
<pre> public function showpekerjaan(Request $request) { $pekerjaan= pekerjaan::where('nama', $request->nama)->get();
return view('admin.showpekerjaan', compact('pekerjaan'));
} </pre>
<pre><section class="content"> <div class="container-fluid"> <div class="row"> <div class="col-12"> <div class="card"> <div class="card-header"> <h3 class="card-title">Tabel Nilai Pekerjaan</h3> </div> <!-- /.card-header --> <div class="card-body table-responsive"> <table id="tabelpekerjaan" class="table table-bordered"> <thead> <tr> <th style="width: 10px">No.</th> <th>Paket Pekerjaan</th> <th>Nama Perusahaan</th> <th>Lokasi Pekerjaan</th> <th>HPS</th> <th>Nilai Kontrak</th> <th style="width: 120px">Aksi</th> </tr> </thead> <tbody> @php $no = 1; @endphp @foreach ($pekerjaan as $pekerjaans) <tr> <td>{{$no++}}</td> <td>{{$pekerjaans->pekerjaan}}</td> <td>{{$pekerjaans->nama}}</td> <td>{{$pekerjaans->lokasi}}</td> <td>Rp. {{number_format($pekerjaans->hps,0,',',',')}}</td> <td>Rp. {{number_format($pekerjaans->nilai_kontrak,0,',',',')}}</td> <td> <a href="#" type="button" class="btn btn-primary btn-block btn-outline-primary">Edit</a> </td> </tr> @endforeach </tbody> </table> </div> <!-- /.card-body --> </div> <!-- /.card -->
&lt;/div&gt;
</section></pre>