Обновление не работает в Laravel, если я использую другое имя текстового поля, чем имя столбца в базе данных - PullRequest
0 голосов
/ 07 июня 2018

Страна моей таблицы имеет два поля country_id и country_name.

, текстовое поле использует имя country

<input type="text" class="form-control" value="{{Session::get('name')}}" name="country" >

Код CountryCOntroller равен

public function update(Request $request, $id)
{
 $this->validate($request, [
 'country' => 'required|country_name',
  ]);
   $updateCountry = $request->all();

    //update  data
    country::find($id)->update($updateCountry);
    return redirect('/admin/country');
}

моя модель

 class country extends Model
{
protected $table = 'country';
protected $fillable = ['country_name'];
public $timestamps = false;
protected $primaryKey = 'country_id';
}

Ответы [ 2 ]

0 голосов
/ 07 июня 2018

Попробуйте это:

country::find($id)->update([
    'country_name' => $request->country
]);
0 голосов
/ 07 июня 2018

вам нужно изменить имя во входном файле на country_name, так как оно должно совпадать с именем столбца, поэтому должно быть так:

<input type="text" class="form-control" value="{{Session::get('name')}}" name="country_name" >

Если вы неЕсли вы не хотите это менять, вам следует сменить свой контроллер, куда вы отправляете массив, на метод update.ну как то так,

public function update(Request $request, $id)
{
 $this->validate($request, [
 'country' => 'required',
  ]);


    //update  data
    country::find($id)->update([
'country_name' => $request->country
]);
    return redirect('/admin/country');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...