Показывать данные с помощью компактного Laravel - PullRequest
0 голосов
/ 05 апреля 2019

У меня есть пользовательская таблица сотрудников в базе данных, как показано ниже

id |    name        |            email                |     pic
1     Michael             michael@mic.com                    4
2     John Doe            john.doe@gmail.com                 4
3     Lorem Ipsum         lorem@ipsum.com                    4
4     Dolor Amet           dolor@amet.com                    5
5     Campus Criteria    campus@criteria.com                 

Я хочу показать данные, когда пользователь с идентификатором 5 входит в систему, он может просматривать свою команду, идентификатор пользователя 5 - это картинка для идентификатора пользователя 4, а идентификатор пользователя 4 - это картинка для идентификатора пользователя 1,2 и 3

Вот что я хочу

    Dolor Amet   
 -----------------------------------------------    
    Michael             michael@mic.com                    
    John Doe            john.doe@gmail.com                 
    Lorem Ipsum         lorem@ipsum.com                    

Я пытался использовать компактный код, но он просто показывает идентификатор пользователя 4, а не идентификатор пользователя 1,2 и 3

Вот мое мнение прямо сейчас, это только просмотр идентификатора пользователя 4, идентификатор пользователя 1,2 и 3 не отображается

    Dolor Amet   
 -----------------------------------------------    

Вот мой код контроллера

 public function user($id)
{
    $pic=Users::where('pic',$id)->get();

    foreach($pic as $pics)
    {
        //dd($pics->id);
        $use=Users::where('pic',$pics->id)->get();
    }

    return view('user',compact(['pic','use']));
}         

Вот мой код лезвия

      <div class="col-md-6">
        <div class="box">
            <div class="box-header with-border">
                <h3 class="box-title">Your Team</h3>
            </div>
            <!-- /.box-header -->
            <div class="box-body">
                <table class="table table-bordered">
                    @foreach($pic as $pics)
                        <thead class=" text-primary">
                            <th class="text-center">{{ $pics->name }}</th>
                        </thead>
                    @endforeach
                    <tbody>
                        @foreach($use as $uses)
                        <tr>
                            <td>{{$uses->name}}</td>
                        </tr>
                        @endforeach
                    </tbody>
                </table>
            </div>
        </div>
    </div>         

Вы знаете, где пропал?

Спасибо

Ответы [ 4 ]

1 голос
/ 05 апреля 2019

Это происходит потому, что старая коллекция заменяется новой коллекцией каждый раз, когда выполняется цикл

Попробуйте с этим

$use = array();
foreach($pic as $pics) {
    $use[] = Users::where('pic',$pics->id)->get();
}
0 голосов
/ 05 апреля 2019

В верхней части вашего контроллера добавьте use Illuminate\Support\Collection,

public function user($id)
{
    $pic=Users::where('pic',$id)->get();
    // use collection
    $users = new Collection();

    foreach($pic as $pics)
    {
        //dd($pics->id);
        // merge collection with existing content
        $users = $users->merge(Users::where('pic',$pics->id)->get());
    }

    return view('user',compact('pic','users'));
}      
0 голосов
/ 05 апреля 2019

Используйте метод array_push для объединения массива и создания компактного

public function user($id)
{
$pic=Users::where('id',$id)->get();

$array_combine=array();
foreach($pic as $pics)
{

    $use=Users::where('pic',$pics->id)->get();
    array_push($array_combine,$use);
}

return view('cobauser',compact(['pic','array_combine']));
}
0 голосов
/ 05 апреля 2019

Вот правильный код для контроллера: -

public function user($id)
{
    $pic=Users::where('id',$id)->get();

    foreach($pic as $pics)
    {
        //dd($pics->id);
        $use=Users::where('pic',$pics->id)->get();
    }

    return view('cobauser',compact(['pic','use']));
}     
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...