在開(kāi)始之前,先進(jìn)行一些翻譯,因?yàn)槲业拇a沒(méi)有使用英語(yǔ):
提供商 = 供應(yīng)商
工作=工作
所以我有兩個(gè)表,供應(yīng)商表和工作表。每個(gè)供應(yīng)商可以擁有多個(gè)作品,并且每個(gè)作品只能由一個(gè)供應(yīng)商擁有。它應(yīng)該是一對(duì)多的關(guān)系。這是我的桌子
供應(yīng)商表
工作臺(tái)
所以,我使用 LARAVEL 作為我的框架。我創(chuàng)建了一個(gè)帶有操作按鈕的供應(yīng)商表,我希望它能夠運(yùn)行,如果單擊該按鈕,它將顯示確切供應(yīng)商名稱擁有的工作(pekerjaan)列表。正如您從上表中看到的,我將供應(yīng)商名稱 (nama) 添加到數(shù)據(jù)庫(kù)中的“工作表”中。我怎樣才能讓這個(gè)功能發(fā)揮作用?我對(duì) 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(我想根據(jù)供應(yīng)商顯示此工作表)
<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>
有什么我需要添加、編輯或更改的嗎?謝謝
您正在嘗試將數(shù)組打印為字符串。您的 pekerjaan() 關(guān)系具有 hasmany 屬性,并且它返回?cái)?shù)組。如果您想顯示所有pekerjaan,則需要在循環(huán)內(nèi)運(yùn)行第二個(gè)循環(huán)。如果你只需要顯示一個(gè),你可以簡(jiǎn)單地這樣做
{{$penyedias->pekerjaan[0]->pekerjaan}}
要顯示所有職位,您可以在 $provider->jobs 上循環(huán),例如:
@php $no = 1; @endphp @foreach ($penyedia as $penyedias) @foreach($penyedias->pekerjaan as $pekerjaan)@endforeach @endforeach {{$no++}} {{$pekerjaan->pekerjaan}} {{$penyedias->nama}} {{$pekerjaan->lokasi}} Rp. {{number_format($pekerjaan->hps,0,',',',')}} Rp. {{number_format($pekerjaan->nilai_kontrak,0,',',',')}} Edit
并更改 $provider =provider::all();在您的控制器上 $provider = Provider::all();