покажите имя данных, который один проект с пользователем использует laravel - PullRequest
0 голосов
/ 23 октября 2018

Я хочу отобразить имя пользователя, у которого есть один проект с вошедшим пользователем. Используйте таблицу отношений user_id и project_id в UserProject в качестве сводной таблицы.

мой контроллер индекса

public function index()
{
    $users = User::with('projects')->get();
    return view ('teams.index', compact('users', 'project'));
}

мой индекс просмотра

<table class="table table-consended">
  <tr>
    <th> <h4>No</h4> </th>
    <th> <h4>Name</h4> </th>
    <th> <h4>Role</h4> </th>
    <th> <h4>Project</h4> </th>
    </tr>
          @foreach($users as $item => $user)                        
     <tr>
        <td>{{$item+1}}</td>
        <td>{{$user->name}}</td>
        <td>{{$user->role->name}}</td>
        <td>
            @foreach ($user->projects as $project)
             {{$project->project_name}}
            @endforeach
        </td>
     </tr>
       @endforeach()
  </table>

, когда я пытаюсь это сделать, имя пользователяотображаются в индексе, хотя это не в том же проекте.index blade

Ответы [ 2 ]

0 голосов
/ 23 октября 2018

используйте это

public function index()
{
    $users = User::where('id',Auth::user()->id)->with('projects')->get();
    return view ('teams.index', compact('users', 'project'));
}

в отношении вызовов вашей модели пользователя

public function projects()
{
    return $this->hasMany(ProjectModel::class, 'user_id')->with('user');
}

в отношении вызовов модели вашего проекта

public function user()
{
    return $this->belongsToMany(UserModel::class,'id');
}
0 голосов
/ 23 октября 2018

Что вам нужно сделать, это получить текущий user затем:

$request->user(); //or Auth::user();

//if you using guard

$request->user('guard-name');

//or

Auth::guard('guard-name')->user();

Вы можете использовать это как:

public function index()
{
    $user = User::with('projects')->find(request()->user()->id);
    return view ('teams.index', compact('user'));
}
...