更新在 Laravel 中不起作用,如果我使用与数据库中的列名不同的文本框名称
Update does not work in Laravel, If I use different textbox name than column name in database
我的 table 国家/地区有两个字段 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';
}
您需要将输入字段中的名称更改为 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');
}
试试这个:
country::find($id)->update([
'country_name' => $request->country
]);
我的 table 国家/地区有两个字段 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';
}
您需要将输入字段中的名称更改为 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');
}
试试这个:
country::find($id)->update([
'country_name' => $request->country
]);