NHibernate elt поле

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

Вы можете использовать array_map с нулем в качестве первого параметра, чтобы создать новый массив, состоящий из пар из каждого. (Я добавил print_r отображенного массива ниже, чтобы продемонстрировать структуру данных.)

Затем вы можете просто перебрать пары.

<?php
$one = [ 63 => 2, 123 => 2];
$two = [ 1 => 100, 3 => 110];

$pairs = array_map(null, $one, $two);
print_r($pairs);

foreach($pairs as $pair)
    printf("%d = %d\n", $pair[0], $pair[1]);

Вывод:

Array
(
    [0] => Array
        (
            [0] => 2
            [1] => 100
        )

    [1] => Array
        (
            [0] => 2
            [1] => 110
        )

)
2 = 100
2 = 110

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

7
задан Cade Roux 27 January 2009 в 16:45
поделиться

2 ответа

"elt" поле является внешним ключом к элементу в отображении many-many. В объединяющей таблице необходимо видеть два столбца внешнего ключа, идентификатор (для родителя) и elt (для элемента). Можно использовать различные имена, если Вам нравится; это значения по умолчанию.

11
ответ дан 6 December 2019 в 11:53
поделиться

Спасибо, да, Вы правы с немного большим количеством проигрывания, что я нашел, что, если я явно не называю столбец, оно принимает значение по умолчанию к elt.

<bag name="equipment" table="tb_room_equipment" lazy="false">
  <key column="roomID"/>
  <many-to-many class="Equipment" column="equipmentID"/>
</bag>

Как здесь, я теперь назвал столбец equipmentID; Если я не сделаю то это назовут elt.

4
ответ дан 6 December 2019 в 11:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: