Код для Db-Connected Apigility — как расширить класс коллекции и получить только необходимые поля

Я следую этому уроку http://techportal.inviqa.com/2013/12/03/create-a-restful-api-with-apigility/ и создать db-подключенный API из кода подключенного.

И есть для Entity вышеупомянутые методы, которые дают мне возможность выбрать, какие поля возвращаются в JSON

public function getArrayCopy()
{
return array(
'id' => $this->id,
'cat_id' => $this->cat_id,
'name' => $this->name,
'url' => $this->url,
);
}

public function exchangeArray(array $array)
{
$this->id = $array['id'];
$this->cat_id = $array['cat_id'];
$this->name = $array['name'];
$this->url = $array['url'];
}

Теперь я не буду делать то же самое для коллекций (возвращать только некоторые поля всех полей таблицы в БД) … но не могу понять, где.

У меня есть ресурс, который вызывает Mapper

return $this->mapper->fetchAll();

и в маппере

public function fetchAll()
{
$select = new Select('eye_medic');
$paginatorAdapter = new DbSelect($select, $this->adapter);
$collection = new MedicCollection($paginatorAdapter);
return $collection;
}

Как я могу отредактировать это для создания моих собственных массивов коллекций и получить только выбранные мной поля?

В примере Ответ для сущности (очень хороший):

[id] => 3
[cat_id] => 1
[name] => Abbadini Dr. Pasqualino Odontoiatra
[url] => abbadini-dr-pasqualino-odontoiatra
[_links] => stdClass Object ...

Ответ для коллекции с полным полем базы данных (не хорошо, я хочу только 4 поля)

[15] => stdClass Object
(
[id] => 19
[user_id] => 0
[country_id] => 105
[region_id] => 13
[province_id] => 68
[city_id] => 5889
[url] => amicarelli-dr-alfonso-studio-dentistico
[name] => Amicarelli Dr. Alfonso Studio Dentistico
[description] =>
[poster] =>
[cat_id] => 1
[status] => LIVE
[publish_ts] => 2014-11-13 18:46:47
[edited_ts] =>
[_links] => stdClass Object ...

заранее спасибо

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]