在開始之前,先進行一些翻譯,因為我的程式碼沒有使用英文:
提供者 = 供應商
#工作=工作
#所以我有兩個表,供應商表和工作表。每個供應商可以擁有多個作品,並且每個作品只能由一個供應商擁有。它應該是一對多的關係。這是我的桌子
供應商表
工作台
所以,我使用 LARAVEL 作為我的框架。我創建了一個帶有操作按鈕的供應商表,我希望它能夠運行,如果單擊該按鈕,它將顯示確切供應商名稱擁有的工作(pekerjaan)清單。正如您從上表中看到的,我將供應商名稱 (nama) 新增至資料庫中的「工作表」。我怎樣才能讓這個功能發揮作用?我對 Laravel 中的「雄辯」很陌生。
這是我的模型檔:
Jobs.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('App\Models\Penyedia'); } }
Provider.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('App\Models\Pekerjaan'); } }
AdminController.php
public function showpekerjaan(){ $penyedia = penyedia::all(); return view('admin.showpekerjaan', compact('penyedia')); }
tabelnilai_pekerjaan.blade.php(我想根據供應商顯示此工作表)
<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 ($penyedia as $penyedias) <tr> <td>{{$no++}}</td> <td>{{$penyedias->pekerjaan->pekerjaan}}</td> <td>{{$penyedias->pekerjaan->nama}}</td> <td>{{$penyedias->pekerjaan->lokasi}}</td> <td>Rp. {{number_format($pekerjaans->pekerjaan->hps,0,',',',')}}</td> <td>Rp. {{number_format($pekerjaans->pekerjaan->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 --> </div> </section>
有什麼我需要新增、編輯或更改的嗎?謝謝
您正在嘗試將陣列列印為字串。您的 pekerjaan() 關係具有 hasmany 屬性,並且它會傳回陣列。如果您想顯示所有pekerjaan,則需要在循環內執行第二個循環。如果你只需要顯示一個,你可以簡單地這樣做
要顯示所有職位,您可以在 $provider->jobs 上循環,例如:
並更改 $provider =provider::all();在您的控制器上 $provider = Provider::all();