在开始之前,先进行一些翻译,因为我的代码没有使用英语:
提供商 = 供应商
工作=工作
所以我有两个表,供应商表和工作表。每个供应商可以拥有多个作品,并且每个作品只能由一个供应商拥有。它应该是一对多的关系。这是我的桌子
供应商表
工作台
所以,我使用 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>
有什么我需要添加、编辑或更改的吗?谢谢
P粉7104789902024-01-30 00:47:00
您正在尝试将数组打印为字符串。您的 pekerjaan() 关系具有 hasmany 属性,并且它返回数组。如果您想显示所有pekerjaan,则需要在循环内运行第二个循环。如果你只需要显示一个,你可以简单地这样做
{{$penyedias->pekerjaan[0]->pekerjaan}}
要显示所有职位,您可以在 $provider->jobs 上循环,例如:
@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();