调用模型 [App\Team] laravel 6 上的未定义关系 [users]

Call to undefined relationship [users] on model [App\Team] laravel 6

嘿,我是编码方面的新手,laravel.I 正在尝试在这里构建一个应用程序,我想我把它搞砸了,但找不到解决方法 it.I 正在调用未定义的关系 [用户] 模型 [App\Team] 异常。我有两个具有多对多关系的表。我想在视图中显示 "viewteams.blade.php" 用户所属的团队。

我的用户模型

    public function users(){
      return $this->belongsToMany(Team::class);
    }

我的团队模型

  public function teams(){
    return $this->belongsToMany(User::class);
  }

我的路线

Route::get('/viewteams','ViewTeamController@index');

我的 ViewTeamController

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Team;
use App\User;

class ViewTeamController extends Controller
{
    public function index()
    {
      $teams = Team::all()->load('users');
      return view('teams.viewteams',compact('teams'));
    }
}

我的viewteams.blade.php

@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row justify-content-center">
        <div class="col-md-8">
            <div class="card">
                <div class="card-header"><h2 style="text-align:center;">Your Teams</h2></div>
                @foreach ($teams as $team)
                  @foreach($team->users as $user)
                    {{$user->org_name}}
                    @endforeach
                @endforeach

                <div class="card-body">

                </div>
            </div>
        </div>
    </div>
</div>
@endsection

错误表示您调用的关系在该模型中不存在。

User 模型与 teams 有关。您给出了正确的关系,但函数名称是错误的。

User.php table 中,您的函数名称应为 teams

Team.php文件中,你的函数名应该是users

用户模型

public function teams(){
  return $this->belongsToMany(Team::class,'team_user','users_id','teams_id');
}

团队模型

  public function users(){
    return $this->belongsToMany(User::class,'team_user','teams_id','users_id');
  }

控制器。

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