Почему saveAll() сохраняет только последнюю запись?

У меня есть ситуация, когда по внешним причинам мне приходится напрямую сохранять записи соединения, а не сохранять их как часть соединения. Вот что я имею в виду:

  • У меня есть модель Firm, данные которой получены из внешнего источника.
  • У меня есть модель Countyв моей базе данных приложения
  • У меня есть таблица соединения counties_firms, которую я использую для связывания этих внешних фирм с округами.

Из-за того, что где живет, я не редактирую модель Фирмыи не редактирую модель округа. Я просто редактирую ассоциации. У меня есть модель Firmдля инкапсуляции всего, что мне нужно сделать с данными Firm, и одним из этих методов является Firm::saveCounties( $data ). Он:

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

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

Array
(
    [0] => Array
        (
            [firm_id] => 13
            [county_id] => 4fa16e24-a25c-4523-8a9e-7d1d147402e8
        )

    [1] => Array
        (
            [firm_id] => 13
            [county_id] => 4fa16e27-ccd0-4f22-97da-7d1d147402e8
        )

    [2] => Array
        (
            [firm_id] => 13
            [county_id] => 4fa16e4a-68f8-4fb1-95bb-7d1d147402e8
        )

)

Учитывая эти данные, я на лету создаю связь между Фирмойи CountiesFirmи пытаюсь $this->CountiesFirm ->saveAll($data).

Как я уже упоминал, в этом примере сохраняется только последняя из трех ассоциаций округов.Есть идеи, что мне может не хватать?

Спасибо.

5
задан Rob Wilkerson 25 May 2012 в 14:06
поделиться