Вставить данные в форму использования сводной таблицы и показать ее index.blade.php в laravel 5.7

У меня есть форма create team.blade.php ниже этого

Вставить данные в форму использования сводной таблицы и показать ее index.blade.php в laravel 5.7

Форма команды index.blade.php

Вставить данные в форму использования сводной таблицы и показать ее index.blade.php в laravel 5.7

Вставить данные в форму использования сводной таблицы и показать ее index.blade.php в laravel 5.7

отобразить имя пользователя, состоящего из одной команды с этим пользователем, и отобразить проект, который выполняется пользователем, и отобразить пользователя как what (роль).

отношения одного пользователя имеют много команд. и в одной команде много пользователей. поэтому я выбираю отношения "многие ко многим". но когда я создаю команду, я хочу вставить user_id и team_id в сводную таблицу user_teams в качестве таблицы отношений между пользователем и командой.

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

мои пользовательские модели

<?php

namespace App;

use Illuminate\Notifications\Notifiable;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
use App\Presence;
use App\Models\Project;
use App\Productivity;
use App\Sick_leave;
use App\Annual_leave;
use App\Models\Team;

class User extends Authenticatable
{
use Notifiable;

/**
 * The attributes that are mass assignable.
 *
 * @var array
 */
protected $fillable = [
    'name', 'email', 'password', 'role_id',
];

/**
 * The attributes that should be hidden for arrays.
 *
 * @var array
 */
protected $hidden = [
    'password', 'remember_token',
];

public function role()
    {
        return $this->belongsTo(Role::class, 'role_id');
    }

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

public function projects()
    {
        return $this->belongsToMany(Project::Class, 'user_projects');
    }
    }

Модели команд

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use App\User;
use App\Role;
use Auth;

class Team extends Model
{
use SoftDeletes;

protected $table = 'teams';
protected $fillable = [
    'id', 
    'project_id',  
];

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

public function project()
{
    return $this->belongsTo(Project::class);
}

public function role()
{
    return $this->belongsTo(Role::class);
}

}

Модель проекта

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;

class Project extends Model
{
use SoftDeletes;
protected $table = 'projects';
protected $fillable = [
    'project_id',
    'project_name',
    'start_date',
    'end_date',
    'project_category',
];

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

public function team()
{
    return $this->hasOne(Team::class);
}
}

Модель UserTeam

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;

class UserTeam extends Model
{
use SoftDeletes;    
protected $table = "user_teams";

public function team()
{
    return $this->belongsTo(Team::class);
}

public function user()
{
    return $this->belongsTo(User::class);
}
}

Командный контроллер

public function index()
{
    $users = auth()->user()->name;
    $users = User::all();
    return view ('teams.index', compact ('teams', 'users', 'projects'));
}
public function create()
{
    $users = User::all();
    $projects = Project::pluck('project_name', 'id');
    return view ('teams.form', compact('projects', 'users'));
}
public function store(Request $request)
{
    $team = Team::create($request->all());
    $userIds = User::find(2);
    $team->users()->attach($userIds);
    return redirect()->route('team.create');
}

В user_teams есть поля user_id и team_id. как мне преодолеть это ??

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
0
642
1

Ответы 1

Вы должны создать команду, а затем присоединить к ней пользователей.

Пример из документы:

Прикрепление

Eloquent also provides a few additional helper methods to make working with related models more convenient. For example, let's imagine a user can have many roles and a role can have many users. To attach a role to a user by inserting a record in the intermediate table that joins the models, use the attach method:

$user = App\User::find(1);

$user->roles()->attach($roleId);

В твоем случае:

Командный контроллер

public function store(Request $request)
{
    $team = Team::create($request->except('user_id'));
    $team->users()->attach($request->get('user_id', []));
    return redirect()->route('team.create');
}

Надо ли добавлять user_id в таблицу team?

Na Koriah 19.10.2018 10:23

Нет, ваша схема верна, Laravel создаст для вас опорную точку с team_id и user_id, вам нужно только передать id пользователей методу присоединения.

Remul 19.10.2018 10:27

когда я попробовал, он вошел в сводную таблицу, но для user_id он не соответствовал user_id, выбранному в соответствии с выбранной опцией.

Na Koriah 19.10.2018 10:38

Вы должны передать users, который вы выбрали в своей форме создания, в действие магазина, на данный момент вы только присоединяете пользователя с id из 2.

Remul 19.10.2018 10:50

в функции store. извиняюсь

Na Koriah 19.10.2018 10:51

для выбора user_id, его следует сохранить в таблице team.

Na Koriah 19.10.2018 10:55

наконец то же самое. user_id не совпадает с опцией выбора

Na Koriah 19.10.2018 11:39

Вы передаете user_id в действие магазина?

Remul 19.10.2018 11:40

Нет, в моей полевой команде ничего user_id

Na Koriah 19.10.2018 11:42

Пожалуйста, добавьте вывод dd($request->all()); к вашему вопросу.

Remul 19.10.2018 11:56

это было добавлено в мой вопрос. в моей полевой команде нет user_id

Na Koriah 19.10.2018 12:02

Другие вопросы по теме