0
votes

Comment créer une relation dans Laravel

AM NOUVELLE À LARAVEL, j'ai des problèmes d'essayer de connecter ces tableaux: plans code>, utilisateurs code> et prêts code> même après avoir lu les docs, J'ai un plans code> des tables qui ont tous mes plans, puis j'ai un utilisateurs code> table et prêts code> table, mon prêts table a un user_id code> et a plan_id code>, tout ce que je veux, c'est de tirer les enregistrements de plans code> et des utilisateurs Code> dans le code> Modèle CODE> MODÈLEZ. P>

LOVEPLAN.PHP strong> p>

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Loan extends Model
{
    protected $table = 'loans';
    //
    protected $fillable = [
        'id',
        'user_id',
        'loanplan_id',
        'payment_made',
        'status',
    ];


    public function user()
    {
        return $this->belongsTo('App\User');
    }

    public function loanplan()
    {
        return $this->belongsTo('App\Loanplan');
    }    
}


0 commentaires

4 Réponses :


0
votes

Tout d'abord, vous devez vérifier si le modèle interroge déjà de la table que vous avez créée auparavant. Laravel accédera automatiquement à la base de table sur votre nom de classe.

Notez que nous n'avons pas dit éloquent quelle table à utiliser pour notre Modèle de vol . Par convention, la "case Snake", nom pluriel de la classe sera utilisée comme nom de table, sauf si un autre nom est explicitement spécifié. Donc, dans ce cas, Eloquent assumera le vol Modèle stocke des enregistrements dans les vols Table.

Vous pouvez le lire depuis Cette documentation

seconde, assurez-vous d'appeler la bonne classe. De prêtsplan.php dans la méthode Il n'utilise pas en majuscule pour la première lettre.

Troisième, essayez d'indiquer la clé étrangère et clé primaire . Vous pouvez également vérifier comment le faire dans la documentation.


0 commentaires

1
votes

prêtsplan.php code> manque le protégé $ Table = "plans" code> variable

même fichier, p> xxx pré> p> La relation doit être hasone ou hasmany, pas d'appartenanceto. p>

De plus, le nom de la classe devrait avoir un prêt avec capital l. P>

public function loan()
{
    return $this->...('App\Loan');
}


0 commentaires

1
votes

Je pense que le problème est avec la personnalisation du nom de la table code> code> dans le modèle code> LoanPlan code>.

En fonction de vos descriptions, vous avez besoin de la configuration de suivi: p>

  • A utilisateur code> peut accéder à un ou plusieurs code> s

    utilisateurs code> 1 --- m plans code> p> blockQuote> li>

  • A emprunt code> appartient à un Charlevetplan code> // Ici, j'utilise Loanplan code> car c'est votre nom de modèle.

    prêts code> 1 --- m plans code> p> blockQuote> li> ul>

    Donc, cela signifie: p>

    user.php strong> p> xxx pré>

    prêt.php strong> p> xxx pré>

    charretplan.php strong> p> xxx pré>

    donc avec cela, tu peux Accédez aux informations de votre loancontroller.php code>: p>

    loancontroller.php strong> p>

    public function myCoolMethod()
    {
        // get a user
        $user = User::first();
        // access his/her loans
        $loans = user->loans;
    
        //
    
        // get a loan plan
        $plan = Loanplan::first();
        // access its loans
        $loans = plan->loans;
    
        //
    }
    


1 commentaires

Comment puis-je le transmettre à la vue afin que je puisse faire boucle, car je veux obtenir l'historique des prêts utilisateur .. merci



0
votes

Tout d'abord, ajoutez protégé $ TABLE = 'Plans'; code> à votre modèle de niveau de prêt puisque le nom de la table est "Plans"

Modèle de prêt strong> P> p> P "

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
 public function Loan()
    {
        return $this->hasOne('App\Loan'); // or hasMany
    } 
}
?>


0 commentaires