Heim > Fragen und Antworten > Hauptteil
Bevor ich anfange, einige Übersetzungen, da mein Code nicht auf Englisch ist:
Anbieter = Lieferant
Arbeit=Arbeit
Ich habe also zwei Tabellen, Lieferantentabelle und Arbeitsblatt. Jeder Lieferant kann mehrere Werke besitzen und jedes Werk kann nur einem Lieferanten gehören. Es sollte eine Eins-zu-Viele-Beziehung sein. Das ist mein Tisch
Lieferantenliste
Werkbank
Also verwende ich LARAVEL als mein Framework. Ich habe eine Anbietertabelle mit einer Aktionsschaltfläche erstellt und möchte, dass sie funktioniert. Wenn auf die Schaltfläche geklickt wird, wird eine Liste der Jobs (Pekerjaan) angezeigt, die dem genauen Anbieternamen gehören. Wie Sie der Tabelle oben entnehmen können, habe ich den Namen des Anbieters (nama) zu einem „Blatt“ in der Datenbank hinzugefügt. Wie kann ich diese Funktion nutzen? Ich bin neu bei Eloquent in Laravel.
Das ist meine Modelldatei:
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 (Ich möchte dieses Blatt basierend auf dem Lieferanten anzeigen)
<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>
Muss ich etwas hinzufügen, bearbeiten oder ändern? Danke
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();