Php 如何使用更新功能更新事件表?
我正在尝试在laravel中更新我的事件表,但由于我对php和laravel还比较陌生,所以我不知道如何更新,我已经可以将数据存储在db中了,只需要找到一种方法来更新它。我还有一个错误“此集合实例上不存在属性[id]) 我的刀锉Php 如何使用更新功能更新事件表?,php,laravel,Php,Laravel,我正在尝试在laravel中更新我的事件表,但由于我对php和laravel还比较陌生,所以我不知道如何更新,我已经可以将数据存储在db中了,只需要找到一种方法来更新它。我还有一个错误“此集合实例上不存在属性[id]) 我的刀锉 <div class="table-responsive"> <table id="default_order" class="table table-striped border display" style="width:100%">
<div class="table-responsive">
<table id="default_order" class="table table-striped border display" style="width:100%">
<thead>
<tr>
<th>Event Name</th>
<th>Start Time</th>
<th>End Time</th>
<th>Status</th>
<th>Manage</th>
</tr>
</thead>
<tbody>
@foreach ($event as $ev)
<tr>
<td>
{{$ev->event_name}}
</td>
<td>
{{$ev->event_start}}
</td>
<td>
{{$ev->event_finish}}
</td>
<td>
{{$ev->event_status}}
</td>
<td>
<button type="button" class="btn btn-info" data-
toggle="modal" data-target="#eventModal{{$event->id}}"
data-whatever="{{$event->id}}"> View</button>
<div class="modal fade" id="eventModal{{$event->id}}"
tabindex="-1" role="dialog" aria-
labelledby="eventModalLabel{{$event->id}}">
<div class="modal-dialog modal modal-dialog-centered"
role="document">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" id="eventModalLabel{{$event-
>id}}">Event Details:</h4>
<button type="button" class="close" data-
dismiss="modal" aria-label="Close"><span aria-
hidden="true">×</span></button>
</div>
<div class="modal-body">
<form method="POST" action="{{ route('event.update',
$event->id) }}">
@method('PATCH')
@csrf
<div class="row">
<div class="col-md-5">
<div class="form-group">
<label for="event-name" class="control-
label">Event Name:</label>
<input type="text" class="form-control"
name="event_name" value="{{$event-
>event_name}}">
</div>
</div>
<div class="col-md-5">
<div class="form-group">
<label for="event-start" class="control-label">Start
Time:</label>
<input type="text" class="form-control"
name="event_start" value="{{$event-
>event_start}}">
</div>
</div>
</div>
<div class="row">
<div class="col-md-5">
<div class="form-group">
<label for="event-finish" class="control-label">End Time:
</label>
<input type="email" class="form-control"
name="event_finish" value="{{$event->event_finish}}">
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-
dismiss="modal">Close</button>
<input type="submit" class="btn btn-success" value="Edit">
</div>
</form>
</div>
</div>
</div>
</td>
</tr>
@endforeach
EventController更新函数
public function update(Request $request, $id)
{
$validator = $request->validate([
'event_name' => 'required',
'event_start' => 'required',
'event_finish' => 'required',
]);
return redirect()->route('event.sched');
/**
$ev = event::find($id);
$ev->event_name = $request->input("event_name");
$ev->save();
Session::flash('success', 'Event successfully updated.');
return redirect()->route('event.sched');
**/
}
事件模型
class Event extends Model
{
//
protected $primaryKey = 'id';
public function eventCategory()
{
return $this->belongsTo('App\EventCategory', 'evcat_id');
}
public function user()
{
return $this->belongsTo('App\User', 'user_id');
}
protected $fillable = [
'event_name', 'event_desc', 'event_status', 'event_start', 'event_finish', 'evcat_id', 'user_id',
];
public $timestamps = false;
}
在
foreach循环中
命名变量$ev
,但在您提供的代码段中引用了$event
<button type="button" class="btn btn-info" data-
toggle="modal" data-target="#eventModal{{$ev->id}}"
data-whatever="{{**$ev**->id}}"> View</button>
<input type="email" class="form-control"
name="event_finish" value="{{$ev->event_finish}}">
<input type="text" class="form-control"
name="event_start" value="{{$ev-
>event_start}}">
还可以看一看,使用此方法,您可以对创建和更新方法使用相同的验证器,而无需在控制器方法中定义验证器。在
foreach循环中
命名变量$ev
,但在您提供的代码段中,您引用了$event
<button type="button" class="btn btn-info" data-
toggle="modal" data-target="#eventModal{{$ev->id}}"
data-whatever="{{**$ev**->id}}"> View</button>
<input type="email" class="form-control"
name="event_finish" value="{{$ev->event_finish}}">
<input type="text" class="form-control"
name="event_start" value="{{$ev-
>event_start}}">
还要看一看,使用它,您可以对create和update方法使用相同的验证器,而无需在controller方法中定义验证器
<button type="button" class="btn btn-info" data-
toggle="modal" data-target="#eventModal{{$ev->id}}"
data-whatever="{{**$ev**->id}}"> View</button>
<input type="email" class="form-control"
name="event_finish" value="{{$ev->event_finish}}">
<input type="text" class="form-control"
name="event_start" value="{{$ev-
>event_start}}">
public function update(Request $request, Event $event)
{
$validator = $request->validate([
'event_name' => 'required',
'event_start' => 'required',
'event_finish' => 'required',
]);
$event->update($request->all());
return redirect()->route('event.sched');
}