MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Modificação indireta da propriedade sobrecarregada Laravel MongoDB


Devido à forma como o acesso aos atributos do modelo é implementado no Eloquent, quando você acessa $category->specifics , uma mágica __get() é chamado um método que retorna uma cópia do valor desse atributo. Portanto, quando você adiciona um elemento a essa cópia, você está apenas alterando a cópia, não o valor do atributo original. É por isso que você está recebendo um erro dizendo que o que quer que esteja fazendo, não terá nenhum efeito.

Se você deseja adicionar um novo elemento a $category->specifics array, você precisa ter certeza de que a mágica __set() é usado acessando o atributo de maneira setter, por exemplo:
$category->specifics = array_merge($category->specifics, $this->request->get('specifics'));