sql >> Base de Datos >  >> NoSQL >> MongoDB

Modificación indirecta de propiedad sobrecargada Laravel MongoDB

Debido a cómo se implementa el acceso a los atributos del modelo en Eloquent, cuando accede a $category->specifics , un __get() mágico se llama al método que devuelve una copia del valor de ese atributo. Por lo tanto, cuando agrega un elemento a esa copia, solo está cambiando la copia, no el valor del atributo original. Es por eso que recibe un error que dice que haga lo que haga, no tendrá ningún efecto.

Si desea agregar un nuevo elemento a $category->specifics array, debe asegurarse de que el __set() mágico se utiliza accediendo al atributo de manera setter, por ejemplo:

$category->specifics = array_merge($category->specifics, $this->request->get('specifics'));