Kohana 2.3.4 ORM - удалить отношения сводной таблицы - PullRequest
0 голосов
/ 05 октября 2010

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

Вот как я их добавляю

           foreach ($categories as $addCat)
              {
                $product->add(ORM::factory('category', $addCat));
              }

$ category - это массив элементов формы, а $ product - модель. Это работает отлично.

Я думаю, мне нужно сделать что-то подобное, чтобы удалить их, но это не работает

$product->remove(ORM::factory('category', $product->id));

$ product-> id - это идентификатор продукта. Я вызываю этот скрипт до добавления скрипта. Моя цель - удалить все отношения, которые содержат значение в «$ product-> id», а затем запустить мой цикл, чтобы добавить их снова. Я мог бы легко это сделать, если бы создал модель для сводной таблицы, но это противоречило бы цели использования сводных таблиц.

1 Ответ

2 голосов
/ 05 октября 2010

У вас правильная идея.Когда вы вызываете ORM :: factory ('category', $ product-> id), вы пытаетесь найти категорию с тем же идентификатором, что и ваш продукт.Вместо этого вам нужно указать идентификатор категории, которую вы хотите удалить.

Допустим, у вас есть массив идентификаторов категорий, которые вы хотите удалить:

$categories = array('2', '4', '6');
foreach ($categories as $cat_id)
{
    $product->remove(ORM::factory('category', $cat_id));
}
...