2015-09-09 4 views
1

Является новым для Cake PHP и MVC, I read this учебник для коллекций, данный в книге торта. Когда я вызываю этот код из контроллера (Пример кода) возвращается какCake PHP: 3.0 - Использование коллекций

торт \ Коллекция \ Коллекция Object()

Что на самом деле должен вернуться как это [2, 3, 1]

Пожалуйста, поправьте меня, если я должен был вернуть код неправильно или любое пространство имен было оставлено из

Пример кода

<?php 
    namespace App\Controller; 
    use Cake\ORM\TableRegistry; 
    use Cake\Collection\Collection; 
    class AdminController extends AppController 
    { 
    public function collection() 
     { 
     $items = ['a' => 1, 'b' => 2, 'c' => 3]; 
     $collection = new Collection($items); 


     // This could return [2, 3, 1] 
     $collection->shuffle()->toArray(); 
     print_r($collection); exit; 
    } 
    } 
    ?> 

ответ

2

Вам нужно получить и вывести массив, возвращаемый toArray, не Collection:

$arr = $collection->shuffle()->toArray() ; 
print_r ($arr) ; 

Если вы хотите, чтобы увидеть саму коллекцию, используйте debug:

debug ($collection->shuffle()) ; 
+0

Я думаю, что вы Мента для печати '$ arr'. И обратите внимание, что 'shuffle()' также не изменяет коллекцию, он возвращает новую, перетасованную. – ndm

+0

@ndm Спасибо, я исправил свой ответ. – Holt

+0

Спасибо, что это сработало для меня .. –