J'ai une table nommée "items" et une entrée pour la condition where nommée "ref_code".

$items = DB::table('items')
             ->where('ref_code','=', $request->ref_code)
             ->get(['id', 'ref_code', 'name','price']);

Mais je n'arrive pas à prendre les valeurs de chaque colonne.

J'ai vérifié si le générateur de requêtes fonctionnait ou non en utilisant:

return $items;

Heureusement, il n'y a pas de problème.

Mais retourner ou obtenir une valeur unique ne fonctionne pas avec:

return $items->id

Ma syntaxe est-elle incorrecte? Tout cela se trouve dans mon contrôleur.

EDIT: j'ai essayé

dd($items);

Avant de revenir et cela m'a montré ceci:

  Collection {#325 ▼
  #items: array:1 [▼
    0 => {#322 ▶}
  ]
}
4
Jan Ariel San Jose 22 juil. 2017 à 07:44

2 réponses

Essayez ceci en utilisant le modèle

$result =  Model_name::->where('ref_code','=', $request->ref_code)
                       ->first(['id', 'ref_code', 'name', 'price']);
0
linktoahref 22 juil. 2017 à 10:48

get() renverrait une collection

$items = DB::table('items')
         ->where('ref_code','=', $request->ref_code)
         ->get(['id', 'ref_code', 'name','price']);

Dans le cas ci-dessus, $items serait une collection, vous devez donc parcourir la collection pour accéder aux propriétés

foreach ($items as $item) {
    $item->price;
}

Si vous avez besoin de renvoyer une instance de modèle, vous pouvez utiliser la méthode {{X0 }} à la place

$items = DB::table('items')
             ->select('id', 'ref_code', 'name', 'price')
             ->where('ref_code','=', $request->ref_code)
             ->first();

Et accédez aux propriétés comme

$items->price;
2
linktoahref 22 juil. 2017 à 04:53