Модель и её отображение...

Духовность™

Продвинутый новичок
Модель и её отображение...

Есть класс файл

[id] => 5
[file_public] => 1
[file_type] => 55

file_type - это внешний ключ на mime_types таблицу.

раньше без ООподхода было так:

[sql]SELECT article_file.*, mime_types.type AS file_type FROM `article_file` LEFT JOIN `mime_types` ON mime_types.id = article_file.file_type WHERE id_element = 51[/sql] что давало при выборке как свойства модели "файл", так и вытягивалось человекопонятное значение file_type.

[cut]

так вот, проблема непонимания в том, что я не знаю, может ли быть свойством модели человекопонятное значение file_type или нет? С одной стороны - нет, т.к. модель - это по сути отпечаток таблицы БД.
 

findnext

Новичок
triumvirat
сделай класс records, в котором опишешь структуру таблицы (просто поля). В этом же классе напишешь метод который будет возвращать данные в зависимости от поля (тут самое интересное - можешь завести отдельный объект куда будешь сохранять полученые значения и если значение отсутствует то обращаешься к бд и вытаскиваешь его). Вроде понятно объяснил.

-~{}~ 05.05.09 16:04:

+ смело можешь юзать factory

-~{}~ 05.05.09 16:05:

может ли быть свойством модели человекопонятное значение file_type или нет
нет
 

Духовность™

Продвинутый новичок
котором опишешь структуру таблицы
это у меня сделано в классе модели
PHP:
// скаляр, тип, писать ли значение этого поля в БД или это какое-то вспомогательное значение
'id' => array('is_scalar'=>TRUE, 'type'=>'int', 'db_element'=>FALSE),
'file_type' => array('is_scalar'=>TRUE, 'type'=>'int', 'db_element'=>TRUE),
'file_public' => array('is_scalar'=>TRUE, 'type'=>'int', 'db_element'=>TRUE),
В этом же классе напишешь метод который будет возвращать данные в зависимости от поля
не совсем понял. у меня меппер возвращает объект-модель. объект-модель содержит то, что записано в таблице:

Код:
[data:private] => Array
(
    [id] => 5
    [id_element] => 51
    [file_public] => 1
    [file_type] => 400
    ...
)
 

findnext

Новичок
на практике всё сложнее, сейчас нет времени подробно рассказать, как приду домой то напишу поподробнее
 

AmdY

Пью пиво
Команда форума
$model->getFileType() //400
$model->getMimeTypes() // должно возвражать запись из заджойненой таблицы
$model->getMimeTypes()->getType() // ЧП значение
$model->getMimeTypes()->get(0)->getType() // или так, для связей 1 - *

-~{}~ 05.05.09 15:21:

и вообще, посмотри в сторону doctrine, почитай, поюзай, затем можешь свой велик писать.
 
Сверху