tablas relacionadas relacion obtener muchos hasmany español datos belongsto php laravel laravel-5.3 pivot-table laravel-eloquent

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?