Реализация модели Cakephp с использованием массива - PullRequest
3 голосов
/ 16 июня 2010

CakePHP Cookbook заявляет , что Модель может использовать файл (например, csv) вместо реальной таблицы базы данных, но я не смог найти никакой реализации для этого.

Мне было интересно, возможно ли использовать массив данных в качестве модели в CakePHP, поскольку у меня достаточно статичный набор данных, который важен для меня в отношениях с другой таблицей, но это не очень много смысла создать для него полную таблицу.

Возможно ли реализовать модель CakePHP с использованием массива?

Ответы [ 2 ]

4 голосов
/ 16 июня 2010

Это должно быть тривиально реализовать с использованием пользовательского источника данных .Вам нужно лишь реализовать несколько методов для чтения и / или записи данных, которые вы можете просто получить из массива.Поскольку каждому методу передается экземпляр модели в качестве первого параметра, вы можете сохранить фактические данные в модели:

class MyModel extends AppModel {
    public $useDbConfig = 'array';
    public $staticData = array( /* data here */ );
}



// in the DataSource:
public function read($model, $queryData = array()) {
    $data = $model->staticData;
    // do something with $data
}
1 голос
/ 18 июня 2010

Если вы хотите, вы можете использовать http://github.com/jrbasso/array_datasource, который является источником данных для сопоставления моделей с массивом данных, что позволит вам прозрачно связать эти модели с моделями на основе баз данных.

Это позволяет вам использоватьИсточник массива в качестве модели, не требующий каких-либо действий, кроме предоставления данных массива и установки имени источника данных в модели.

Прочитайте документы для некоторых примеров - это действительно довольно просто, а код - легкоПонимаю.Он также позволяет выполнять обычные операции поиска * с моделью, условиями и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...