Как вставить данные со страницы показа одной модели в сводную таблицу в laravel - PullRequest
0 голосов
/ 03 июня 2018

Я пытаюсь заполнить сводную таблицу user_id текущего пользователя и event_id события, которое просматривает пользователь.Но при нажатии кнопки «Отправить» отображается страница, срок действия которой истек из-за неактивности.Пожалуйста, обновите и попробуйте снова.Вот мой код:

EventController.php

    public function index()
    {
        $events = DB::table('events')->get();
        return view('events.index', ['events'=>$events]);
    }

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

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $event = new Event;
        $event->title = $request->eventTitle;
        $event->location = $request->eventLocation;
        $event->date = $request->eventDate;
        $event->time = $request->eventTime;

        $event->save();
        Session::flash('success', 'Event created successfully');
        return redirect()->route('events.create');
    }


    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        $event = Event::find($id);
        return view('events.show', ['event'=>$event]);
    }

EventsUsersController.php

    public function store(Request $request)
{
    $event_id = $request->id;
    $user_id = $request->Auth::user()->id;

    DB::table('event_user')->insert([
        ['event_id' => $event_id],
        ['user_id' => $user_id]
    ]);
}

и страница показа, с которой я хочу вставить данные в сводную таблицу

@extends('layouts.app')

@section('content')
    <div class="container">
    <h1>{{$event->title}}</h1>
    <p>Date: {{$event->date}}</p>
    <p>Time: {{$event->time}}</p>
    <p>Location: {{$event->location}}</p>
    @if(Auth::check())
<form method="POST" action="{{ route('eventsusers.store') }}">
    {{ csrf_field() }}
    <input type="hidden" name="event_id" value="{{ $event->id }}">
    <input type="hidden" name="user_id" value="{{ Auth::user()->id }}">
    <button type="submit" class="btn btn-success">Register</button>
</form>
@endif
    </div>
@endsection

Мой файл миграции для таблицы user_event:

public function up()
    {
        Schema::create('event_user', function (Blueprint $table) {
            $table->integer('event_id');
            $table->integer('user_id');
            $table->timestamps();
            $table->primary(['event_id', 'user_id']);
        });
    }

Я новичок в laravel.Поэтому, пожалуйста, будьте нежны.:)

1 Ответ

0 голосов
/ 03 июня 2018

токен csrf может создать проблему такого типа.Есть несколько способов ее решить.

  1. Добавьте {{ csrf_field() }} в форму, как показано ниже, и проверьте, что произойдет.

    {{csrf_field ()}} Зарегистрируйтесь
  2. Вы можете добавить скрытое поле, подобное этому <input type="hidden" name="_token" value="{{ csrf_token() }}">

  3. Вы можете обновить промежуточное ПО VerifyCsrfToken, используя этот подход

    protected $ кроме = ['your /маршрут '];

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...