Создание отдельных таблиц в зависимости от пользовательских ролей - PullRequest
0 голосов
/ 19 марта 2020

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

Пользователь index.blade. php

@extends('layouts.app')
@section('content')

<div class="container">
        <div class="row justify-content-center">
                <div class="col-md-10">
                    <p>
                        <a href="{{ route('admin.users.create') }}"><button type="button" class="btn btn-success">Create User</button></a>
                    </p>

                    <div class="card">
                            <div class="card-header">Manage Users</div>
                            <div class="card-body">
                            <div class="table-responsive"> 
                                <table class="table">
                                    <thead>
                                    <tr>
                                        <th>ID</th>
                                        <th>Name</th>
                                        <th>Course</th>
                                        <th>Role</th> 
                                        <th></th>
                                        <th></th>
                                        <th></th>
                                    </tr>
                                    </thead>
                                    <tbody>
                                    @foreach ($users as $user)
                                        <tr>
                                            <th scope="row">{{ $user->id }}</th>
                                            <td>{{ $user->name}}</td>
                                            <td>{{ implode ($user->courses()->pluck('title')->toArray()) }}</td>
                                            <td>{{ implode (', ', $user->roles()->pluck('role_name')->toArray()) }}</td>
                                            <td>
                                                @can('edit_users')
                                                <a class="btn btn-xs btn-secondary" href="{{ route('admin.users.show', $user->id) }}">
                                                    View
                                                </a>
                                                @endcan
                                            </td>
                                            <td>    
                                                @can('edit_users')
                                                <a class="btn btn-xs btn-primary" href="{{ route('admin.users.edit', $user->id) }}">
                                                    Edit
                                                </a>
                                                @endcan
                                            </td>
                                            <td>
                                                @can('delete_users')
                                                <form action="{{ route('admin.users.destroy', $user->id) }}" method="POST" onsubmit="return confirm('Confirm delete?');" style="display: inline-block;">
                                                    <input type="hidden" name="_method" value="DELETE">
                                                    <input type="hidden" name="_token" value="{{ csrf_token() }}">
                                                    <input type="submit" class="btn btn-xs btn-danger" value="Delete">
                                                @endcan
                                            </form>
                                            </td> 
                                            </tr>
                                        @endforeach
                                    </tbody>
                                    </table> 
                                    </div>
                            </div>
                        </div>
                </div>
        </div>
</div>
@endsection

Я ценю любую помощь в том, как я мог go сделать это.

enter image description here

Ответы [ 2 ]

1 голос
/ 19 марта 2020

в контроллере вам нужно сгруппировать пользователей по role_name, а после в index.blade. php создавать таблицы с foreach. Или вы можете использовать belongTo relashionship и получать пользователей по ролям, например u wi sh. $ Roles-> Пользователь

0 голосов
/ 19 марта 2020

Вы можете попытаться создать три таких таблицы:

[БАЗА ДАННЫХ]

users
    id - integer
    name - string

roles
    id - integer
    name - string

role_user
    user_id - integer
    role_id - integer

[МОДЕЛЬ]

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    /**
     * The roles that belong to the user.
     */
    public function roles()
    {
        return $this->belongsToMany('App\Role');
    }
}

, и вы можете добавить много ролей с этим в вашем [CONTROLLER]

$user = App\User::find(1);
$user->roles()->attach($roleId);
``
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...