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.

avatar YuPhe
@YuPhe

4 Kontribusi 0 Poin

Diperbarui 2 tahun yang lalu

2 Jawaban:

<pre> public function showpekerjaan(Request $request) { $pekerjaan= pekerjaan::where('nama', $request-&gt;nama)-&gt;get();

return view(&#039;admin.showpekerjaan&#039;, compact(&#039;pekerjaan&#039;));

} </pre>

avatar salmanalmajali
@salmanalmajali

2 Kontribusi 0 Poin

Dipost 2 tahun yang lalu

<pre>&lt;section class="content"&gt; &lt;div class="container-fluid"&gt; &lt;div class="row"&gt; &lt;div class="col-12"&gt; &lt;div class="card"&gt; &lt;div class="card-header"&gt; &lt;h3 class="card-title"&gt;Tabel Nilai Pekerjaan&lt;/h3&gt; &lt;/div&gt; &lt;!-- /.card-header --&gt; &lt;div class="card-body table-responsive"&gt; &lt;table id="tabelpekerjaan" class="table table-bordered"&gt; &lt;thead&gt; &lt;tr&gt; &lt;th style="width: 10px"&gt;No.&lt;/th&gt; &lt;th&gt;Paket Pekerjaan&lt;/th&gt; &lt;th&gt;Nama Perusahaan&lt;/th&gt; &lt;th&gt;Lokasi Pekerjaan&lt;/th&gt; &lt;th&gt;HPS&lt;/th&gt; &lt;th&gt;Nilai Kontrak&lt;/th&gt; &lt;th style="width: 120px"&gt;Aksi&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; @php $no = 1; @endphp @foreach ($pekerjaan as $pekerjaans) &lt;tr&gt; &lt;td&gt;{{$no++}}&lt;/td&gt; &lt;td&gt;{{$pekerjaans-&gt;pekerjaan}}&lt;/td&gt; &lt;td&gt;{{$pekerjaans-&gt;nama}}&lt;/td&gt; &lt;td&gt;{{$pekerjaans-&gt;lokasi}}&lt;/td&gt; &lt;td&gt;Rp. {{number_format($pekerjaans-&gt;hps,0,',',',')}}&lt;/td&gt; &lt;td&gt;Rp. {{number_format($pekerjaans-&gt;nilai_kontrak,0,',',',')}}&lt;/td&gt; &lt;td&gt; &lt;a href="#" type="button" class="btn btn-primary btn-block btn-outline-primary"&gt;Edit&lt;/a&gt; &lt;/td&gt; &lt;/tr&gt; @endforeach &lt;/tbody&gt; &lt;/table&gt; &lt;/div&gt; &lt;!-- /.card-body --&gt; &lt;/div&gt; &lt;!-- /.card --&gt;

&amp;lt;/div&amp;gt;

&lt;/section&gt;</pre>

avatar salmanalmajali
@salmanalmajali

2 Kontribusi 0 Poin

Dipost 2 tahun yang lalu

Login untuk ikut Jawaban