J'ai une requête pour obtenir tous les téléphones compatibles dans un pays spécifique, et dans mon contrôleur j'utilise Set :: extract pour réduire le tableau des résultats désordonnés à un tableau de noms de produits.Comment pourrais-je utiliser la fonctionnalité Set :: dans mon contrôleur pour manipuler le tableau avant de l'envoyer à mon affichage dans CakePHP?
$ results = $ this-> Country-> compatiblePhones ($ country);
$ compatiblePhones = Set :: extract ('/ p/nom_produit', $ resultats);
$ this-> set ('compatiblePhones', $ compatiblePhones);
L'extrait tidies ce résultat:
Array
(
[0] => Array
(
[p] => Array
(
[product_name] => Bat Phone
)
)
[1] => Array
(
[p] => Array
(
[product_name] => Premium Phone
)
)
[2] => Array
(
[p] => Array
(
[product_name] => Brick Phone
)
)
[3] => Array
(
[p] => Array
(
[product_name] => Satellite Phone
)
)
)
à ceci:
Array
(
[0] => Bat Phone
[1] => Premium Phone
[2] => Brick Phone
[3] => Satellite Phone
)
Je passe ce tableau à mon avis et avoir un peu de code qui montre des liens pour chaque téléphone dans le tableau:
<ul>
<?php echo (in_array("Bat Phone", $compatiblePhones)) ? '<li><a href="#">Bat Phone</a></li>' : '' ;?>
<?php echo (in_array("Premium Phone", $compatiblePhones)) ? '<li><a href="#">Premium Phone</a></li>' : '' ;?>
<?php echo (in_array("Brick Phone", $compatiblePhones)) ? '<li><a href="#">Brick Phone</a></li>' : '' ;?>
<?php echo (in_array("Satellite Phone", $compatiblePhones)) ? '<li><a href="#">Satellite Phone</a></li>' : '' ;?>
</ul>
Ceci est mon problème: Le téléphone satellite va toujours être retourné car il fonctionne everywhe re, mais je veux seulement l'afficher exclusivement si aucun des autres téléphones ne fonctionne. Je suppose que je pourrais le faire en utilisant in_array() du côté de la vue, mais c'est assez désordonné comme ça.
Comment pourrais-je utiliser la fonctionnalité Set :: dans mon contrôleur pour manipuler le tableau avant de l'envoyer à ma vue? J'ai également considéré que si le tableau contient exactement les téléphones corrects, je peux juste les foreach à mon avis, au lieu d'avoir la configuration désordonnée in_array().
Merci.