2014-04-17 2 views
1

Après avoir récupéré $competitors de MySQL avec succès la requête à distance suivante ...Récupérer les données de l'objet en php

$competitors = DB::table('homes') 
    -> select(array('*', DB::raw('SQRT(POW('.$Eastings.' - `Eastings`,2) + POW('.$Northings.' - `Northings`,2)) AS distance'))) 
    -> having('distance', '<', $micromarket_size) 
    -> get(); 

... Je suis en train de récupérer les données que je reviens, surtout si, les frais et paramètres d'occupation. J'ai essayé d'accéder aux données en faisant quelque chose comme:

$competitors->id[2]; 

Mais obtenir l'erreur:

Trying to get property of non-object

J'ai alors pensé que je pourrais boucle à travers tous les concurrents:

foreach ($competitors as $competitor) { 
    $i=0; 
    $id[$i]   = $competitor->id; 
    $fees[$i]   = $competitor->minSingleCareFee; 
    $occupancy[$i] = $competitor->Average_Occupancy; 
    $i = $i + 1; 
}; 

Et puis essayez ce qui suit:

echo $id[2]; 

Mais j'ai toujours une erreur. Toute aide appréciée!

+0

'id $ competitors-> [2]' ne marche pas de sens. De la base de données vous obtenez une chaîne ou un nombre - pas un tableau. Et qu'en est-il de '$ id [2]'? Êtes-vous sûr qu'il y a 'id = 2' dans votre déclaration? – Kasyx

Répondre

0

essayer cette

echo '<pre>'; 
var_dump($competitors); 
echo '</pre>'; 

$queries = DB::getQueryLog(); 
$last_query = end($queries); 
echo $last_query; 
die(); 

et exécuter la requête SQL dans phpMyAdmin ou anyother

0

EDIT:

Je compris que je ne pouvais accéder aux propriétés en allant $competitors[i]->id au lieu de $competitors->id[i];

Merci pour votre aide!

0

Dans votre exemple, $competitors est une collection de sorte que vous pouvez boucler comme ceci:

foreach($competitors as $competitor) { 
    echo $competitor->id; // use other properties like same way 
} 
Questions connexes