php - relacionadas - ¿Cómo puedo actualizar la tabla dinámica en laravel?
tablas relacionadas laravel (1)
Intenta usar la función sync()
Product::find($product_id)->categories()->sync($array_of_categories_id)
Yo uso laravel 5.3
Tengo 3 tabla: producto de tabla, categoría de tabla y tabla products_categories
producto de mesa: id, nombre, etc.
categoría de la tabla: id, nombre, etc.
table products_categories: id, product_id, category_id
En el producto modelo, tengo este método:
public function categories()
{
return $this->belongsToMany(Category::class, ''products_categories'', ''product_id'', ''category_id'')
->withPivot(''id'')
->withTimestamps();
}
Entonces 1 producto tiene muchas categorías
Mi código como este
Por ejemplo $ param [''category''] como este:
Array ([''category1''] => 4 [''category2''] => 11 [''category3''] => 18)
$ product_id = 1
foreach ($param[''category''] as $category) {
Product::find($product_id)
->categories()
->attach(
$category,
[]
);
}
Solía agregar categoría en la tabla dinámica y funciona
Pero si actualizo la categoría en la tabla pivote, no funciona
Lo intento así:
Por ejemplo, la categoría editada anteriormente como esta
$ param [''category''] =
Matriz ([''categoría 1''] => 5 [''categoría 2''] => 12 [''categoría 3''] => 19)
$ product_id = 1
Y el código para actualizar los datos en la tabla pivote de esta manera:
foreach ($param[''category''] as $category) {
Product::find($product_id)
->categories()
->wherePivot(''product_id'', $product_id)
->updateExistingPivot($category, [''category_id'' => $category]);
}
No actualizó la categoría de campo con éxito
¿Cómo puedo resolverlo?