Aggiungi manualmente l'object all'object esistente

Ecco cosa cerco di fare:

$q = Question::where('id',$id -> id)->get(); $q[] = $q->push([ 'test' => true]); dd($q); 

Questo produrrà:

 Collection {#220 ▼ #items: arrays:3 [▼ 0 => Question {#225 ▶} 1 => arrays:1 [▼ "test" => true ] 2 => null ] } 

Quindi 'test' => true verrà aggiunto come una nuova chiave, ma voglio inserirlo in Question così posso accedervi in ​​questo modo con foreach $q -> test

Quindi ecco come voglio accedere all'elemento:

 @foreach($q as $qq) {{ $qq->test }} @endforeach 

Può essere fatto utilizzando la function setAttribute () di Eloquent Model ( https://github.com/illuminate/database/blob/master/Eloquent/Model.php ).
Come puoi vedere memorizza i dati negli attributi $ protetti usando setAttribute () , e quando facciamo $ SomeModel-> some_field usa il metodo magico __get () per recuperare elementi per associazione dall'arrays di attributi .

Ecco la soluzione alla tua domanda:

 $Question = Question::find($id); $Question->setAttribute('test', 'blablabla'); 

Oltre a setAttribute() , è ansible utilizzare put() riferirsi a questo post per un articolo. E map() per molti articoli, fare riferimento a questo post .