2013-06-13 1 views
0

Я пытаюсь преобразовать вывод запроса Model-> find в SQL для ввода в базу данных, полностью отделенную от текущей базы данных MySQL, используемой cakePHP система. Моя проблема в том, что у меня есть несколько виртуальных полей в моделях, которые неизбежно возвращаются при выполнении Model-> find на данных. Понятно, что мне нужно найти и удалить эти виртуальные поля из find, если я хочу преобразовать данные в SQL, которые будут использоваться как входные данные в идентичную базу данных, как исходный MySQL. Есть ли простой способ опустить виртуальные поля? любой способ, которым это может быть сделано в версии выше 1,3, также будет очень полезен.cakephp 1.3: как опустить виртуальные поля из запроса на поиск

Большое спасибо.

ответ

2

Вы можете либо определить свои виртуальные фиксы во время выполнения. Это то, что я обычно делаю.

$this->virtualFields['x'] = 'y'; 
// find query 

Но вы также можете ограничить находку поля

«поля» => Array («все поля без виртуальных полей»)

Это будет также показывать свои виртуальные поля. Обычно вы не хотите подробно определять все поля.

Вы также можете незаданы все виртуальные поля для находки() вызова:

$tmp = $this->virtualFields; 
$this->virtualFields = array(); 
// find query 
$this->virtualFields = $tmp; 
+0

Что делать, если вам нужно удалить виртуальную полее временные на объединенном (hasMany, belongsTo, HABTM ,. ..) модель? –