CakePHP - получение и работа с данными из разных таблиц - PullRequest
0 голосов
/ 19 августа 2011

Извините, я новичок в CakePHP, и я немного запутался в этой теме, позвольте мне объяснить:

У меня есть отношения между двумя таблицами. Один из столов - Доза, а другой - танк. Итак, один танк принадлежит к дозе. Доза имеет много танков. Схема таблицы:

CREATE TABLE `doses` (
    `id` INT(10) NOT NULL AUTO_INCREMENT,
    `dose` INT(5) NULL DEFAULT NULL,
    PRIMARY KEY (`id`)
)

В моем представлении Tank у меня есть следующий код:

<?php echo $form->input('dose_id', array('class'=>'input', 'label' => ''));?>

Каждая «доза» (поле) из таблицы «Доза» соответствует значению, например 200, 300 и т. Д. Мне нужно использовать эти числа для вычисления других чисел, прежде чем вставить в мою базу данных (таблица tank). Например, мой код в tanks_controllers:

$t_u = $this->data['Tank']['tipo_uso_id'];
if( $t_u == '1'){
$this->data['Tank']['producao_adubo_diaria'] = $this->data['Tank']['dose_id'] * 0.10;
.
.
.

Однако, это приносит мне идентификатор дозы, а не значение (поле дозы). Где я могу настроить это, чтобы принести мне правильные данные (дозу)? Я попытался настроить этот способ в моей модели:

'Dose' => array(
        'className' => 'Dose',
        'foreignKey' => 'dose_id',
        'conditions' => '',
        'fields' => 'dose',
        'order' => ''
    )

Это не сработало.

Я ценю ваше время, помогающее мне.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 19 августа 2011

Что производит $form->input('dose_id')? Выпадающий список? Если так; по умолчанию торт выдаст выпадающий список с value, содержащим (dose_)id, и текстом, который вы видите как значение $displayField (обычно имя / заголовок).

Для этого; если я вас понимаю, вам нужно сначала запросить doses для всех значений и сохранить результат в массиве, используя значение dose в качестве ключа И значение, а не id, как обычно. После этого вы сможете получить доступ к фактическому значению дозы с $this->data.

$doseArray=array();
$doses = $this->Dose->find('all');
foreach($doses['Dose'] as $k => $v) {
    $doseArray[$v] = $v;
}

возможно. Кажется, немного излишним, поэтому я могу быть выключен.

0 голосов
/ 19 августа 2011

it is bringing to me the ID of the Dose and not the value (dose field). Where can I set up this to bring me the correct data (dose)?

Вам нужно получить его из БД (модель), а не из вида. Так что вам нужно найти (). Если вы новичок в Cake, вы должны сначала прочитать кулинарную книгу, чтобы увидеть, как она работает.

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