Reputation: 167
I'm using laravel
package commentable
by faustbrian
. i've been getting the comment for a post using just like in documentation in github . I want to search the information for user who post the comment, e.g the user avatar, address, and other information as well. I want to include the user information (which is an array) to the current position index of array (while for each i push it). the problem is, i tried using array_push
, array_merge
and $data[$key]=>$value
as well. but none of them is working when i dd the variable. please help.
public function notaPengurusan($id){
$comments=Complaint::findOrFail($id)->comments->toArray();
foreach ($comments as $comment){
$creator=User::findOrFail($comment['creator_id'])->toArray();
array_push($comment,$creator);
}
dd($comments);
return view('complaint::notapengurusan',compact('comments'));
}
Upvotes: 0
Views: 2548
Reputation: 13699
you should add user() relationship in your Comment Model :
public function user(){
return $this->belongsTo('App\Model\User','creator_id');
}
then no need to use for loop and finding user each time , use with('user')
:
$comments=Comment::where(['post_id'=>$post_id])->with('user')->orderBy('created_at','desc')->paginate(12);
Upvotes: 0
Reputation: 129
You need to use array index and its global variable $comments
foreach ($comments as $key=>$comment){
$creator=User::findOrFail($comment['creator_id'])->toArray();
array_push($comments[$key],$creator);
}
Upvotes: 1