Php 如何将数据从一个模型的显示页插入到laravel中的透视表中
我试图用当前用户的用户id和用户正在查看的事件的事件id填充透视表。但单击“提交”后,页面显示由于不活动,该页面已过期。请刷新并重试。这是我的密码: EventController.phpPhp 如何将数据从一个模型的显示页插入到laravel中的透视表中,php,laravel,eloquent,Php,Laravel,Eloquent,我试图用当前用户的用户id和用户正在查看的事件的事件id填充透视表。但单击“提交”后,页面显示由于不活动,该页面已过期。请刷新并重试。这是我的密码: EventController.php public function index() { $events = DB::table('events')->get(); return view('events.index', ['events'=>$events]); }
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]);
}
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]
]);
}
EventsUserController.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]);
}
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
我是拉雷维尔的新手。所以请温柔点。:) csrf令牌会造成此类问题。有几种方法可以解决这个问题
{{csrf_field()}
,如下面的代码所示,并检查发生了什么
{{csrf_field()}}
登记
现在,它在EventsUserControllerMoreOver中给了我“类名必须是有效对象或字符串”错误,您的事件id($request->id)在表单中的位置在哪里?大多数错误都是由我没有进行的导入以及我使用$request->Auth:。。不只是Auth::No,它给了我一个新的错误,我认为这与我创建数据库的方式有关。“SQLSTATE[HY000]:一般错误:1364字段“用户id”没有默认值(SQL:insert into
event\u user
(event\u id
)值(),(1))”尝试按顺序解决问题,它显示此错误。因为当您尝试以其他方式插入时,用户id没有值DB::table('event_user')->insert(['event_id'=>$request->event_id',user_id'=>$request->user_id]);