У меня есть таблица products и таблица pr_tags . Я хочу добавить свои теги товаров в таблицу pr_tags. Модель PrTag:
protected $table = 'pr_tags';
protected $fillable=['pr_tags','slug','product_id'];
Я думал, что могу сделать это с l oop в контроллере, но мой l oop работает некорректно.
try {
$request->merge(['pr_prev_price' => $request->pr_last_price, 'slug' => $slug, 'seller_id' => Auth::id()]);
$newProduct = Product::create($request->except('pr_tags'));
$last_id = $newProduct->id;
$countTags = count(explode(',', $request->pr_tags));
for ($i = 0; $i < $countTags; $i++) {
$splitedTags = explode(',', $request->pr_tags);
$tag_slug = str::slug($splitedTags[$i]);
$request->merge(['product_id' => $last_id, 'slug' => $tag_slug, 'pr_tags' => $splitedTags[$i]]);
PrTag::create($request->only('pr_tags', 'slug', 'product_id'));
}
return response(['processStatus' => 'success', 'processTitle' => 'Success', 'processDesc' => 'Congratulations , product added successfully !']);
} catch (\Exception $e) {
return response(['processStatus' => 'error', 'processTitle' => 'Error', 'processDesc' => 'Product could not added !', 'error' => $e]);
}
Прежде всего i Я создаю свою новую таблицу для таблицы продуктов, и я получаю новый идентификатор ( $ last_id ) нового продукта для магазина в моей таблице pr_tags . Чем мой l oop begin.My Теги продуктов ( $ request-> pr_tags ) представлены как 'tag, tag2, tag3 ...'. Я взламываю эти теги, чтобы хранить их в своих строках как:
|id|tag |slug |product_id|
------------------------
|1 |tag |tag |1 |
|2 |tag2|tag2 |1 |
|3 |tag3|tag3 |1 |
..........................
Но этот l oop дает мне только одну строку, а не так, как я ожидал. Спасибо!