7
votes

Comment accéder à une colonne du résultat de la requête Laravel

Je reçois une erreur dans mon contrôleur Propriété non définie: Illuminate \ Base de données \ Eloquent \ Collection :: $ Create_at

Comment accéder à une colonne créée_at à partir d'un résultat de la requête Laravel?

Code du contrôleur: xxx

Ça fonctionne avec FindorFail (quelque_id) mais pas avec cette , pourquoi?


1 commentaires

Si ce code fonctionne avec FindorFail , quelque chose est faux. Aussi, au lieu de définir post :: créé_at dans un contrôleur, vous pouvez utiliser un accesseur dans votre modèle. regarder ici


3 Réponses :


2
votes

comme $ post code> est une instance Collection code> Vous devez utiliser foreach code> comme: xxx pré>

ou Vous pouvez utiliser premier code> pour obtenir un premier objet ou Dernier code> pour obtenir le dernier objet comme p> xxx pré>

update Strong> P>

Essayez comme suit: p> xxx pré>

alors votre peut y accéder comme: p>

foreach ($posts as $post) {
    dd($post->diff_for_humans);
}


2 commentaires

Ou mieux encore, appelez le -> première () méthode sur la requête plutôt que sur la collecte elle-même, si un résultat est tout ce qui est nécessaire.


Il s'agit d'une erreur qu'un mois à deux chiffres n'a pas pu être trouvé des données manquantes. Code mis à jour!



8
votes

get () récupère la collection, vous devez donc itérité sur celui-ci: xxx

ou vous pouvez utiliser premier () à Obtenez un objet au lieu de la collection. Dans ce cas, cela fonctionnerait: xxx

aussi, vous n'avez pas besoin de passer créé_at à Dernier () , parce que cette colonne est définie comme valeur par défaut: xxx


4 commentaires

premier () renvoie toutes les lignes?


Non, il ne renverra qu'un seul objet (premier). Si vous avez plusieurs éléments, en utilisant foreach est la seule option.


Il lance une erreur Un mois à deux chiffres n'a pas pu être trouvé des données manquantes . Code mis à jour!


@Jaskaransinghpuri Ce n'est pas lié à la question initiale et vous devriez créer une autre question, poster l'erreur, etc. Je pense que vous ne pouvez pas faire $ post-> créé_at = et aussi vous n'avez pas besoin d'analyser < Code> créé_at car c'est déjà une instance de carbone.



0
votes

Lorsque vous appelez get () Vous pouvez transmettre un tableau de champs pour sélectionner: xxx

puis vider pour voir, qu'est-ce qui est à l'intérieur avec dd ($ post)


0 commentaires