簡體   English   中英

Laravel 5更新數據庫中現有的

[英]Laravel 5 Update existing in database

我正在嘗試使用引導程序模式中的表單更新表中的現有行。 但是,當我嘗試時,沒有任何改變。 我有一個html表,其中包含汽車列表,每行中都有一個“更改狀態”按鈕,該按鈕使用id="myModal_{{ $car->id }}"和其中的表單打開引導模態,以編輯汽車的維修狀態。

這是我的模態:

<!-- Modal -->
<div class="modal fade" id="myModal_{{ $car->id }}" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
        <h4 class="modal-title" id="myModalLabel">Breyta stöðu bíls</h4>
      </div>
      <div class="modal-body">
        <div class="form-group">
          <h3>Breyta stöðu fyrir {{ $car->LicencePlate }}</h3>
        </div>
            {!! Form::open(['url' => 'create']) !!}

              <div class="form-group">
                {!! Form::label('Status', 'Status: ') !!}
                {!! Form::select('Status', [
                                  null => ' -- Veldu Stöðu bíls -- ',
                                  'Í Biðröð' => 'Í Biðröð',
                                  'Í Viðgerð' => 'Í Viðgerð',
                                  'Tilbúinn' => 'Tilbúinn'
                                  ], null, ['class' => 'form-control']) !!}
              </div>
              <div class="form-group">

              </div>

      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        {!! Form::submit('Skrá stöðu', ['class' => 'btn btn-primary']) !!}
      </div>
      {!! Form::close() !!}
    </div>
  </div>
</div>

CarController中的更新方法:

public function CarEdit($id, Requests\CreateCarsRequest $request)
{
  $edit = Car::update($request->all());
  return redirect::back();
}

我的方法之路:

Route::post('/dashboard', 'CarController@CarEdit');

你應該做這個:

['action' => 'CarController@CarEdit']

另外,您使用的是mass assignment ,因此必須在Car模型中填充$fillable數組才能使其正常工作: https : //laravel.com/docs/5.1/eloquent#mass-assignment

我能夠在同事的幫助下解決此問題。 我所做的是創建了一個名為UpdateCarRequest的新記錄,其中LicencePlate字段不是唯一的。 然后像這樣編輯我的方法:

public function CarEdit(Requests\UpdateCarRequest $request)
{
  $edit = Car::where('LicencePlate', '=', $request->LicencePlate)->first();
  $edit->update($request->all());
  return redirect('/dashboard');
}

我還以值$car->LicencePlate的形式添加了一個隱藏字段。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM