Récupérer les données d'une autre table correspondant au nom Laravel
P粉378264633
P粉378264633 2024-01-29 12:28:44
0
1
395

Avant de commencer, quelques traductions car mon code n'est pas en anglais :

fournisseur = fournisseur

travail=travail

J'ai donc deux tableaux, un tableau des fournisseurs et une feuille de calcul. Chaque fournisseur peut posséder plusieurs œuvres, et chaque œuvre ne peut appartenir qu’à un seul fournisseur. Il devrait s'agir d'une relation un-à-plusieurs. C'est ma table

Liste des fournisseurs

Établi

Donc, j'utilise LARAVEL comme framework. J'ai créé une table de fournisseurs avec un bouton d'action et je veux qu'elle fonctionne et si vous cliquez sur le bouton, une liste de travaux (pekerjaan) appartenant au nom exact du fournisseur s'affichera. Comme vous pouvez le voir dans le tableau ci-dessus, j'ai ajouté le nom du fournisseur (nama) à une « feuille » dans la base de données. Comment puis-je faire fonctionner cette fonctionnalité ? Je suis nouveau sur Eloquent dans Laravel.

Voici mon fichier modèle :

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 (Je souhaite afficher cette fiche en fonction du fournisseur)

<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>

Y a-t-il quelque chose que je dois ajouter, modifier ou changer ? Merci

P粉378264633
P粉378264633

répondre à tous(1)
P粉710478990

Vous essayez d'imprimer un tableau sous forme de chaîne. Votre relation pekerjaan() a la propriété hasmany et renvoie un tableau. Si vous souhaitez afficher tous les paramètres, vous devez exécuter une deuxième boucle à l'intérieur de la boucle. Si vous n'avez besoin d'en afficher qu'un seul, vous pouvez simplement le faire

{{$penyedias->pekerjaan[0]->pekerjaan}}

Pour afficher tous les travaux, vous pouvez effectuer une boucle sur $provider->jobs comme :

@php $no = 1; @endphp
                  @foreach ($penyedia as $penyedias) 
                   @foreach($penyedias->pekerjaan as $pekerjaan)
                  
                    {{$no++}}
                    {{$pekerjaan->pekerjaan}}
                    {{$penyedias->nama}}
                    {{$pekerjaan->lokasi}}
                    Rp. {{number_format($pekerjaan->hps,0,',',',')}}
                    Rp. {{number_format($pekerjaan->nilai_kontrak,0,',',',')}}
                    
                        Edit
                    
                  
                   @endforeach
                  @endforeach

Et changez $provider =provider::all(); sur votre contrôleur $provider = Provider::all();

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal