Php 如何使用更新功能更新事件表?

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%">

我正在尝试在laravel中更新我的事件表,但由于我对php和laravel还比较陌生,所以我不知道如何更新,我已经可以将数据存储在db中了,只需要找到一种方法来更新它。我还有一个错误“此集合实例上不存在属性[id])

我的刀锉

<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">&times;</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');
}