Вызов неопределенного отношения [пользователи] в модели [Приложение \ Команда] laravel 6 - PullRequest
2 голосов
/ 08 марта 2020

Эй, я довольно новичок в кодировании и laravel. Я пытаюсь создать здесь приложение, я думаю, что я испортил его, но не могу найти способ обойти это. Я получаю Звонок в неопределенные отношения [пользователи] на модели [ 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

1 Ответ

2 голосов
/ 08 марта 2020

Ошибка означает, что вызываемая вами связь не существует в этой модели.

User модель связана с teams. Вы дали правильные отношения, но имя функции неверно.

В таблице User.php имя вашей функции должно быть 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'));
}
...