толкать массив, в то время как foreach другой массив laravel - PullRequest
0 голосов
/ 19 марта 2019

Я использую laravel пакет commentable от faustbrian.я получаю комментарий к посту, используя как в документации в github.Я хочу найти информацию для пользователя, который публикует комментарий, например, аватар пользователя, адрес и другую информацию.Я хочу включить пользовательскую информацию (которая является массивом) в индекс текущей позиции массива (в то время как для каждого я нажимаю ее).проблема в том, что я пытался использовать array_push, array_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 изображение this is simply as in commentable package but not user information

Ответы [ 2 ]

1 голос
/ 19 марта 2019

Вам нужно использовать индекс массива и его глобальную переменную $comments

foreach ($comments as $key=>$comment){
    $creator=User::findOrFail($comment['creator_id'])->toArray();
    array_push($comments[$key],$creator);
}
0 голосов
/ 19 марта 2019

Вы должны добавить отношение user () в свой комментарий Модель:

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

тогда нет необходимости использовать для цикла и поиска пользователя каждый раз, используйте with('user'):

$comments=Comment::where(['post_id'=>$post_id])->with('user')->orderBy('created_at','desc')->paginate(12);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...