Maison  >  Questions et réponses  >  le corps du texte

Informations provenant de plusieurs tables dans une boucle foreach. laravel 8

Je pense essayer de créer une table qui passe par une boucle foreach qui doit sélectionner les données associées dans deux tables distinctes.

Situation réelle, en créant une application Web de gestion de prêts, je dois montrer au prêteur les données d'offre qu'il a faites à l'emprunteur, mais pour que le tableau d'affichage soit complet, il a besoin d'informations provenant de deux tables différentes dans la base de données, que dois-je faire

Mon responsable Contrôleur de prêt

function beggers()
{
    // obtaining loop from different sources
    $user = auth()->user();
    $user_id = ($user->id);/* this calls for data of logged in user */

    $ubids = Bid::select('loan_id')->where('user_id',$user_id);
    $userbids = Loan_requests::where('id',$ubids)->get();
    
    $beg = Loan_requests::all(); 
    return view('beggers',['beg'=>$beg,'userbids'=>$userbids]);


}

Utilisez la boucle foreach pour afficher la page beggers.blade.php

<h2>Deals Interested in</h2>
<table border="1">
    <tr>
        <td>Loan Id</td>
        <td>Begger</td> //this is the users name
        <td>Loan Type</td>
        <td>Amount</td>
        <td>View More</td>
        <td>status</td>
    </tr>

    @foreach ($userbids as $userbids)
    <tr>
        <td>{{ $userbids['id'] }}</td>
        <td>..</td>
        <td>{{ $userbids['LoanType'] }}</td>
        <td>{{ $userbids['amount'] }}</td>
        <td>..</td>
        <td>..</td>
    </tr>   
    @endforeach 
</table>

Veille responsable Demande de prêt

Schema::create('loan_request', function (Blueprint $table) {
            $table->id();
            $table->unsignedBigInteger('users_id');
            $table->integer('LoanType');
            $table->Biginteger('amount');
            $table->string('PayType');
            $table->integer('IntervalPay');
            $table->string('GracePeriod');
            $table->timestamps();
            $table->foreign('users_id')
            ->references('id')->on('users')->ondelete('cascade');
        });

et Utilisateur

Schema::create('users', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->string('email')->unique();
            $table->boolean('role')->nullable( );
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password');
            $table->rememberToken()->nullable();
            $table->timestamps();
        });

Donc, ce que je veux vraiment dans la boucle, c'est pouvoir appeler le nom d'utilisateur réel du mendiant dans le tableau.

P粉025632437P粉025632437237 Il y a quelques jours416

répondre à tous(1)je répondrai

  • P粉604507867

    P粉6045078672024-03-20 14:03:52

    Le problème est que vous utilisez la même collection que la variable

    @foreach ($userbids as $userbids)
        
            {{ $userbids['id'] }}
            ..
            {{ $userbids['LoanType'] }}
            {{ $userbids['amount'] }}
            ..
            ..
           
        @endforeach

    Dans ce code, voyez votre @foreach($userbids as $userbids) en utilisant le même nom. Changez simplement le code

    @foreach ($userbids as $userbid)
            
                {{ $userbid->id }}
                ..
                {{ $userbid->LoanType }}
                {{ $userbid->amount }}
                ..
                ..
               
            @endforeach

    La fonction laravel get() renvoie une collection au lieu d'un tableau au cas où vous souhaiteriez la changer en tableau

    $userbids = Loan_requests::where('id',$ubids)->get()->toArray();

    répondre
    0
  • Annulerrépondre