Дублируйте категории товаров - PullRequest
0 голосов
/ 30 апреля 2019

Мне нужно скопировать сводку categories для продукта, где id=15, и применить его к другому продукту.Есть ли какое-нибудь сокращение, чтобы сделать копию вставки вместо получения массива и цикла присоединения?

$product = App\Product::find(15);   
$product->categories()->attach([1, 5]);

Ответы [ 2 ]

1 голос
/ 30 апреля 2019

Если я правильно понял вашу девочку, вы хотите присоединить те же категории, которые прикреплены к продукту с id = 15 к другому продукту.

$product = App\Product::find(15);

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

$categories_id = $product->categories()->pluck('id'); // [1,2,3,4,5] 

Если второй продукт, к которому я хочу прикрепить эти категории, имеет id = 5, я могу выполнить репликацию следующим образом

$otherProduct = App\Product::find(5);

$otherProduct->categories()->sync($categories_id);
1 голос
/ 30 апреля 2019
$product = App\Product::find(15);
$newProduct = $product->replicate();
$newProduct->save();

и для отношений

$newProduct->categories()->attach($product->categories);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...