-1
votes

Comment extraire des données des clés étrangères à Laravel?

Je suis nouveau chez 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 & user_id comme clé étrangère dans la table de sections. 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é>

p>

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

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');
}}


5 commentaires

$ section-> classe () ou $ de classe-> section ()


Et bien sûr oublier c.-à-d. IE ou EDGE;)


Que demandez-vous s'il vous plaît expliquer.


C'est ma question aussi que vous pouvez vérifier, je n'ai pas eu de réponses appropriées dessus.


@Abdulrehman Si vous n'avez pas aimé les réponses que vous avez sur votre autre question, vous n'auriez pas dû accepter un.


3 Réponses :


0
votes

au lieu de

{{$ chat -> (nom_id) -> nom}}

essayer

{{$ CAT-> classes-> nom}}

Vous accédez à la clé étrangère dans la table des sections avec $ cat -> (class_id) , qui fonctionne. Mais maintenant, vous souhaitez interroger la relation via ses propriétés dynamiques, qui nécessitent $ Cat-> Classes -> "Toute propriété des classes" .


5 commentaires

Je viens de le changer et cela donne cette erreur. Je ne sais pas quelle colonne en parle. SQLSTAT [42S22]: Colonne non trouvée: 1054 Colonne inconnue 'ClassesSes.Section_ID' Dans 'Où clause' (SQL: SELECT * à partir de Classe Classe . SECTION_IDE = 2 et Classe . Section_ID n'est pas NULL) (vue: C: \ xampp \ htdocs \ jurs1 \ ressources \ vues \ sections \ index.blade. p hp)


Désolé, je n'ai pas vérifié assez attentivement. Je crois que votre modèle de données n'est pas correct. La clé étrangère doit être définie dans le modèle / table "Orto ". Donc, si les relations dans les tables de base de données sont correctes, alors échangez simplement "Betasto" et "Hasmany" dans vos modèles. Et puis voir ma réponse précédente.


"Essayer d'obtenir le" titre "de la propriété de non-objet


stackoverflow.com/questions/32469542/... même problème mais ne peut pas comprendre si vous pouvez m'aider s'il vous plaît


Remplacer 'Vue de retour (' Sections.index ') -> Avec ...' avec 'Vue de retour (' Sections.index ', Compact (' Sections ', "Classes", "Utilisateurs"));'



0
votes

ESSAYER $ SECTION-> CLASSES , il devrait s'agir d'une matrice car la relation est HASMANY et que vous devriez peut-être créer un filtre pour obtenir le bon identifiant.

Eloquent a une autre façon d'obtenir une relation avec SQL où la clause et les autres.

SECTION $-> Classes () -> Où ("Titre", "FOO") -> Premier ((code>

Conseils et si vous voulez l'essayer.

Lorsque vous retournez la vue, vous pouvez avec -> avec () méthode dans Laravel, utilisez la fonction PHP compacte pour un appel clair et un code. xxx


5 commentaires

"Propriété [classes] n'existe pas sur cette instance de collection. (Vue: C: \ Xampp \ htdocs \ JURS1 \ RESSOURS \ VIEWS \ SECTIONS \ INDEX.BLADE.P HP)"


Vérifiez si la section $ Var est plutôt $ chat à votre vue. Si vous êtes dans la boucle, c'est. Sinon, essayez {{dd ($ section)}} ou {{dd ($ section-> classes)}} pour vérifier la valeur actuelle de votre var.


Où dois-je vérifier cette section $ dans le contrôleur ou la lame?


Curlybraces ne sont disponibles que dans le modèle de lame, donc si vous souhaitez déboguer dans la lame, vous utilisez le code dans mon commentaire ci-dessus. Vous pouvez également utiliser la fonction Laravel dd ($ yourvariablename) dans votre contrôleur


Je suis tellement désolé de me dire si mal



0
votes

Cela fonctionne pour moi ... un peu long mais simple xxx


0 commentaires