Отдельные пользовательские логины все ведут себя как один пользователь? - PullRequest
0 голосов
/ 28 сентября 2019

Я использую Laravel 6, и в настоящее время пользователи могут войти в систему и отправить группу, которая хранится в базе данных.

Я только что заметил, что если я создаю новую Группу для, скажем, пользователя # 1 .., а затем выхожу и регистрируюсь как пользователь # 2, я вижу одну и ту же Группу для обоих пользователей.

Каким-то образом группы CRUD распространяются на всех пользователей?

Я пытался просмотреть код, но не вижу, где это пошло не так.На прошлой неделе все работало!

GroupController.php


namespace App\Http\Controllers;

use App\Group;
use Illuminate\Http\Request;

// All Groups pages require login except 'show'
class GroupsController extends Controller
{

    public function __construct()
    {
        $this->middleware('auth', ['except' => 'show']);
    }

    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $groups = Group::all();

        return view('groups/index', compact('groups'));
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        return view('groups.create');
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)

    {
        $request->validate([
            'group_title' => 'required',
            'group_description' => 'required',
            'group_date' => 'required',
            'group_time' => 'required',
        ]);

        $group = new Group([
            'group_title' => $request->get('group_title'),
            'group_description' => $request->get('group_description'),
            'group_date' => $request->get('group_date'),
            'group_time' => $request->get('group_time'),
        ]);
        $group->save();
        return redirect('/groups')->with('success', 'Group saved!!');
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        $group = Group::find($id);
        return view('groups.show', compact('group'));
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        $group = Group::find($id);
        return view('groups.edit', compact('group'));
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        $request->validate([
            'group_title' => 'required',
            'group_description' => 'required',
            'group_date' => 'required',
            'group_time' => 'required',
        ]);

        $group = Group::find($id);
        $group->group_title =  $request->get('group_title');
        $group->group_description = $request->get('group_description');
        $group->group_date = $request->get('group_date');
        $group->group_time = $request->get('group_time');
        $group->save();
        return redirect('/groups')->with('success', 'Group updated!');
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        $group = Group::find($id);
        $group->delete();

        return redirect('/groups')->with('success', 'Group deleted!');
    }
}

Страница индекса группы

 <tbody>
                                    @foreach($groups as $group)
                                    <tr>
                                        <td>{{$group->created_at->format('d M, Y')}}</td>

                                        <td><a href="{{ route('groups.show',$group->id)}}">{{$group->group_title}}</a></td>

                                        <td><a href="">Members</a></td>

                                        <td><a href="">Image link</a></td>

                                        <td>
                                            <a href="{{ route('groups.edit', $group->id)}}" class="btn btn-sm btn-warning">Edit</a>
                                        </td>
                                        <td>
                                            <form action="{{ route('groups.destroy', $group->id)}}" method="post">
                                                @csrf
                                                @method('DELETE')
                                                <button class="btn btn-sm btn-danger" type="submit">Delete</button>
                                                <!-- fas fa-trash fa-fw text-danger -->
                                            </form>
                                        </td>
                                    </tr>
                                    @endforeach
                                </tbody>```

1 Ответ

0 голосов
/ 28 сентября 2019

Получите группы, принадлежащие аутентифицированному пользователю.

/**
 * Display a listing of the resource.
 *
 * @return \Illuminate\Http\Response
 */
public function index()
{
    $groups = auth()->user()->groups;

    return view('groups.index', compact('groups'));
}

. В вашей app/User.php модели * предусмотрена настройка отношений

public function groups()
{
    return $this->hasMany('App\Group');
}

и таблица миграции для групп, подобная этой

Schema::create('groups', function (Blueprint $table) {
    $table->bigIncrements('id');
    $table->unsignedBigInteger('user_id');
    $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
    $table->string('group_title');
    $table->text('group_description');
    $table->date('group_date');
    $table->time('group_time');
    $table->timestamps();
});

Если указать, какой пользователь создал группу

/**
 * Store a newly created resource in storage.
 *
 * @param  \Illuminate\Http\Request  $request
 * @return \Illuminate\Http\Response
 */
public function store(Request $request)
{
    $request->validate([
        'group_title' => 'required',
        'group_description' => 'required',
        'group_date' => 'required',
        'group_time' => 'required',
    ]);

    $group_created = Group::create([
        'user_id' => auth()->id(),
        'group_title' => $request->get('group_title'),
        'group_description' => $request->get('group_description'),
        'group_date' => $request->get('group_date'),
        'group_time' => $request->get('group_time'),
    ]);
    if ($group_created) {
        return redirect('/groups')->with('success', 'Group saved!!');
    }
    return redirect('/groups')->with('failed', 'Could not create group');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...