0
votes

Comment voir les champs de table des clés étrangères à Laravel

Je suis nouveau à Laravel et pas bon avec la syntaxe. Je veux voir les valeurs d'une autre table via la clé étrangère (ID de cette table).

https: // IBB .CO / PXRFRHRH Vous pouvez voir dans cette image, je reçois des identifiants sous l'utilisateur et la classe. Je veux les titres associés à ces identifiants. P>

J'ai des sections, des utilisateurs et une classe. J'utilise class_id code> & user_id comme clé étrangère dans la table de la section. Lorsque j'essaie de montrer des données, je vois l'identifiant, mais je veux que le nom et les autres champs sont extraits de cet identifiant. p>

contrôleur strong> p> xxx pré>

lame / vue strong> p> xxx Pré>

spécifiquement ... p> xxx pré>

à partir de ceci, je reçois l'identifiant de la classe, mais je veux son nom aussi. P>

class Section extends Model
{
    //
    protected $fillable = [
        'id',
        'title',
        'class_id',
        'user_id',

    ];


    public function classs()
    {
        return $this->hasMany('App\Classs');
    }

}


3 commentaires

S'il vous plaît partagez votre code Laravel, où vous envoyez cet objet


J'ai édité ma question. J'espère que ça marche.


Non, veuillez partager votre code de Laravel dans le contrôleur ou les fichiers de route.php (backend)


3 Réponses :


0
votes

Il est assez facile de faire exactement ce que vous voulez. Laravel est idéal pour créer des relations.

Vous aurez besoin du modèle de classe configuré en tant que relation sur votre modèle utilisateur. Voir Les Documents sur la façon de faire ce

devrait être quelque chose Proche de cela dans le modèle utilisateur : xxx

puis, lorsque vous tirez les utilisateurs de la base de données dans le contrôleur , vous pouvez inclure la relation directement: xxx

MAINTENANT, vous avez le modèle de classe associé dans votre collection pour chacun de vos utilisateurs, vous pouvez tirer le nom directement comme vous le souhaitez dans Votre Vue de la lame : xxx

Je suggère de tester avec ce simple dépotoir ci-dessus, car cela fonctionnera. Ensuite, vous pouvez essayer de joindre les différents modèles comme les catégories par la suite.

Au fait - en utilisant la classe comme nom de classe va probablement vous faire valoir des problèmes. Suggère un léger changement là-bas.

hth


3 commentaires

J'ai essayé cela mais ça n'a pas fonctionné. Dois-je faire fonctionner des relations dans le modèle avant de l'utiliser?


Non, je vois que vous avez une configuration différente maintenant que vous avez posté votre contrôleur. Permettez-moi de modifier ma réponse pour réfléchir:


Oui, toutes ces charnières sur le modèle de classe soient une relation à l'intérieur du modèle d'utilisateur. Ne fonctionnera pas si vous n'avez pas créé la releaissance en premier. C'est pourquoi je suis lié aux docs - c'est la première étape, créant ainsi la relation



0
votes

Vous devez déclarer vos relations du tout. Dans votre modèle modèle, xxx

et classe modèle, xxx

Après cela, vous pouvez l'appeler comme ça; xxx

ou vous pouvez les appeler lorsque vous récupérez en vue comme ça; xxx

Ils ont appelé "relations éloquentes" Les relations de Laravel

Assurez-vous de les lire car la documentation est trop claire pour comprendre quelque chose dans les temps record.

Hasone et Hasmany ne sont qu'un exemple. Quel type de relation fonctionne pour vous pouvez changer.


0 commentaires

1
votes

Tout ce que vous avez à faire est xxx

plutôt que cela essayez ceci xxx

Je suppose que votre nom de table est en classe Vous souhaitez afficher le nom de la classe, de sorte que le nom de la classe de base de données (Nom de la colonne) serait simple de «nom», que la raison pour laquelle je mets dans le champ de valeur ...


0 commentaires