我有三个表,分别是User表,Events表和Events_user表.我在Events_user表中有四列是:
Schema::create('events_user', function(Blueprint $table){
$table->increments('id');
$table->integer('user_id')->unsigned()->index();
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->integer('events_id')->unsigned()->index();
$table->foreign('events_id')->references('id')->on('events')->onDelete('cascade');
$table->integer('eventstatus')->unsigned()->index();
$table->timestamps();
});
Run Code Online (Sandbox Code Playgroud)
我有一个函数,它在用户id上添加一个事件库,显示一个用户可以拥有许多事件.但该事件可以与其他用户共享.功能是这样的:
public function store(EventsRequests $request){
$id = Auth::user()->id;
$events= Events::create($request->all());
$events->user()->attach($id); //Store the User_ID and the Event_ID at the events_user table.
Flash::success('Your event has been created!');
return redirect('/');//Return into home page
// return $events;
}
Run Code Online (Sandbox Code Playgroud)
然后它会帮我更新我的events_user表,但是如何更新eventstatus列呢?任何人都可以告诉我如何更新它?因为我想使用eventstatus帮我确定是否有'1'然后无法编辑,然后编辑按钮将消失.有多少种方法可以实现这个功能?
对于显示页面:我在用户点击日历视图中存在的事件时使用该功能,然后javascript将ID返回并重定向到具有id的视图.
public function show($id){
// $user_id=Auth::user()->name;
$showevents = Events::findOrFail($id);
return view('events.show',compact('showevents','user'));
}
Run Code Online (Sandbox Code Playgroud)
当我想将eventstatus传递给视图时怎么样?所以我可以查看我的视图,如果eventstatus等于1,则编辑按钮不会显示.
更新了关系模型
user.php的
public function events(){
return $this->belongsToMany('App\Events');
}
Run Code Online (Sandbox Code Playgroud)
Events.php
public function user(){
return $this->belongsToMany('App\User')->withPivot('eventstatus');
}
Run Code Online (Sandbox Code Playgroud)