【问题标题】:push an array while foreach other array laravel推送一个数组同时foreach其他数组laravel
【发布时间】:2019-08-09 11:35:30
【问题描述】:

我正在使用laravelcommentable by faustbrian。我一直在使用就像在 github 中的文档中一样获得帖子的评论。我想搜索发布评论的用户的信息,例如用户头像、地址和其他信息。我想将用户信息(这是一个数组)包含到数组的当前位置索引中(而对于每个我推送它)。问题是,我也尝试使用array_pusharray_merge$data[$key]=>$value。但是当我添加变量时,它们都不起作用。请帮忙。

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'));
}

当我 dd 图片时的图片

【问题讨论】:

    标签: arrays laravel-5 foreach


    【解决方案1】:

    你应该在你的评论模型中添加 user() 关系:

    public function user(){
            return $this->belongsTo('App\Model\User','creator_id');
    }
    

    那么不需要每次都使用for循环和查找用户,使用with('user')

    $comments=Comment::where(['post_id'=>$post_id])->with('user')->orderBy('created_at','desc')->paginate(12);
    

    【讨论】:

    • 我也想过这个问题,但也许我只是不想干预包模型配置。我对 Laravel 很陌生。谢谢。
    • 如果你的项目是用于生产的,你应该使用关系:)
    【解决方案2】:

    需要使用数组索引及其全局变量$comments

    foreach ($comments as $key=>$comment){
        $creator=User::findOrFail($comment['creator_id'])->toArray();
        array_push($comments[$key],$creator);
    }
    

    【讨论】:

      猜你喜欢
      • 2019-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-12
      • 2012-09-23
      相关资源
      最近更新 更多