laravel怎么往一个对象里面添加一个键值对?

laravel怎么往一个对象里面添加一个值?demo如下:
要给每条article记录添加一个键值对"tags"=>["foo","bar"],
ArticlesController.php
publicfunctionindex()
{
$articles=user()->articles;
dd($articles);//这是一个collection
//遍历上面的collection,给每条记录添加下面这个键值对:
//"tags"=>["foo","bar"]
$multiplied=$articles->map(function($item,$key){
dd($item);//结果在下面
//这里应该怎么写?
});
$newArticles=$multiplied->all();
dd($newArticles);
returnview('articles',compact('newArticles'));
}
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"=>"helloworld"
"user_id"=>2
"created_at"=>"2017-07-2315:34:52"
"updated_at"=>"2017-07-2315:34:55"
]
#original:array:6[▶]
#dates:[]
#dateFormat:null
#appends:[]
#events:[]
#observables:[]
#relations:[]
#touches:[]
+timestamps:true
#hidden:[]
#visible:[]
#guarded:array:1[▶]
}
问题:控制器中index()方法map里面的代码应该怎样写?
互换的青春
浏览 1843回答 2
2回答

慕慕森

dd($item);//结果在下面//这里应该怎么写?$item->tags=['foo','bar'];return$item;

12345678_0001

Collection的map函数原理:funcitonmap(Closure$closure){$data=[];foreach($this->itemas$v){//$item可以看作楼主实例中对象的属性$data[]=$closure($v);}return$data;}$collection->map(function($item){$item->tags=['foo','bar'];return$item;})说明:map函数接受闭包,通过foreach循环中调用闭包,情形如下:#funcitonmap(Closure$closure){#$data=[];#foreach($this->itemas$v){//$item可以看作楼主实例中对象的属性$data[]=(function(){$item->tags=['foo','bar'];return$item;})($v);#}#return$data;#}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript