Question: My table country has two fields `country_id` and `country_name`.

the textbox is using name `country`

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

```

CountryCOntroller code is 

```
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');
}

```

my model is 

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

```

Answer: 
you need to change the name in the input filed to `country_name` as it should match the column name so it should be like this, 

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

If you don't want to change that then you should change you controller where you send the array in to the `update` method. so something like this,

```
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');
}

```
Try this :

```
country::find($id)->update([
    'country_name' => $request->country
]);

```