Comment puis-je obtenir le premier élément de CakePHP 3 résultats d'objet

TLDR: Comment puis-je utiliser le premier élément dans un objet?


Après l'obtention de données de la base de données, je veux tirer le premier et utiliser séparément avant de répéter dans les autres vidéos. (Dans mon modèle/vue de fichier). Si c'était un tableau, je pourrais l'utiliser quelque chose comme array_shift, mais jusqu'à présent, avec l'objet, je suis de retour à vide.

D'abord, j'ai données dans mon Contrôleur, et de passer à la Vue:

$videos = $this->Videos->find();
$this->set(compact('videos'));

Puis, dans la Vue (fichier de modèle), j'ai essayé ceci:

$featuredVideo = $videos{0};

Erreur Ne peut pas utiliser d'objet de type Cake\ORM\Query sous forme de tableau

Et ce:

$featuredVideo = $videos->0;

Error: syntax error, unexpected '0' (T_LNUMBER), s'attendant à identifier (T_STRING) ou variable (T_VARIABLE) ou '{' ou '$'

Et ce:

$featuredVideo = $videos->toArray()[0];

Cela fonctionne (un peu), mais puis-je utiliser $featuredVideo comme un Tableau, qui est différente de partout ailleurs, et semble non élégant.

Et ce:

$featuredVideo = $videos->first();

C'est génial, mais il limite la totalité de l'objet uniquement à la première, donc je n'ai plus le reste de la vidéo.

Et ce:

$allVideos = $videos;
$featuredVideo = $videos->first();

Mais, apparemment, puisque c'est un objet, le $allVideos est juste une référence à la $videos, car ils sont tous deux se réduit à la première vidéo.

Je me rends compte cela semble être une question simple, et c'est probablement une réponse simple, mais j'ai regardé autour, et essayé les suggestions sur la façon d'obtenir le premier élément d'un objet avec les résultats ci-dessus.

OriginalL'auteur Dave | 2015-04-13