zwl1619
zwl1619

Reputation: 4232

Laravel : How to add a key value into an object?

How to add a key value into an object?

I want to add "tags" => ["foo","bar"] into every record,demo:

ArticlesController.php

public function index()
{
    $articles = user()->articles;
    dd($articles);  //This is a collection

    //loop the collection,and add `"tags" => ["foo","bar"]` into every record
    $multiplied = $articles->map(function ($item, $key) {
        dd($item);//result below

        //how to write here?

    });
    $newArticles = $multiplied->all();
    dd($newArticles);
    return view('articles', compact('newArticles'));
}

result of dd($item)

   Article {#498 ▼
         #fillable: array:2 [▶]
         #casts: array:1 [▶]
         #connection: "mysql"
         #table: null
         #primaryKey: "id"
         #keyType: "int"
         +incrementing: true
         #with: []
         #perPage: 15
         +exists: true
         +wasRecentlyCreated: false
         #attributes: array:6 [▼
           "id" => 1
           "title" => "hello"
           "content" => "hello world"
           "user_id" => 2
           "created_at" => "2017-07-23 15:34:52"
           "updated_at" => "2017-07-23 15:34:55"
         ]
         #original: array:6 [▶]
         #dates: []
         #dateFormat: null
         #appends: []
         #events: []
         #observables: []
         #relations: []
         #touches: []
         +timestamps: true
         #hidden: []
         #visible: []
         #guarded: array:1 [▶]
       }

question:
How to write the code in map()?

Upvotes: 1

Views: 14904

Answers (2)

Ali Raza
Ali Raza

Reputation: 66

simple

$object->new_key="value";

Upvotes: 3

Priya
Priya

Reputation: 1554

$item->tags = ['foo', 'bar']; 
return $item;

inside map will do the job.

But do the map to $newArticles.

Upvotes: 5

Related Questions