更新数据库记录 table : Laravel
Update records of database table : Laravel
我需要根据编辑的数据更新数据库table。
控制器
public function update(Request $request)
{
$subscriptionplan = SubscriptionPlan::find($request->id);
$subscriptionplan->update($request->all());
return back();
}
但是当我提交表单时没有任何反应。当我在函数开头使用 dd($request->all());
时,它会正确显示编辑后的数据,如下所示。
array:10 [▼
"_method" => "patch"
"_token" => "gOCL4dK6TfIgs75wV87RdHpFZkD7rBpaJBxJbLHF"
"editname" => "SUP_EVA_001"
"editdesc" => "des"
"editprice" => "1000.050"
"editlimit" => "1"
"editperunit" => "20.000"
"editexceedunit" => "30.000"
"productid" => "1"
"id" => "1"
]
但是数据库还没有更新。
我的 table 名字是 Table: subscription_plans
型号是 SubscriptionPlan
这些是 table 列:
protected $fillable = [
'name',
'description',
'price',
'usage_limit',
'charge_per_unit',
'charge_per_unit_exceed',
'is_limit_exceed_considered',
'product_id'
];
关于如何解决它或我做错了什么的任何想法?
为了 Laravel 自动填充模型属性,传递给 fill 方法的数组索引必须与您的模型属性名称相对应。
此外,而不是
$subscriptionplan->update($request->all());
使用
$subscriptionplan->fill($request->all());
然后用$subscriptionplan->save();
保存订阅计划
如果您的解决方案不起作用,请像这样尝试 1by1。
public function update(Request $request)
{
$subscriptionplan = SubscriptionPlan::find($request->id);
$subscriptionplan->_method = $request->_method;
$subscriptionplan->_token = $request->_token;
$subscriptionplan->editname = $request->editname;
$subscriptionplan->editdesc = $request->editdesc;
$subscriptionplan->editprice = $request->editprice;
$subscriptionplan->editlimit = $request->editlimit;
$subscriptionplan->editperunit = $request->editperunit;
$subscriptionplan->editexceedunit = $request->editexceedunit;
$subscriptionplan->productid = $request->productid;
$subscriptionplan->save();
return back();
}
我需要根据编辑的数据更新数据库table。
控制器
public function update(Request $request)
{
$subscriptionplan = SubscriptionPlan::find($request->id);
$subscriptionplan->update($request->all());
return back();
}
但是当我提交表单时没有任何反应。当我在函数开头使用 dd($request->all());
时,它会正确显示编辑后的数据,如下所示。
array:10 [▼
"_method" => "patch"
"_token" => "gOCL4dK6TfIgs75wV87RdHpFZkD7rBpaJBxJbLHF"
"editname" => "SUP_EVA_001"
"editdesc" => "des"
"editprice" => "1000.050"
"editlimit" => "1"
"editperunit" => "20.000"
"editexceedunit" => "30.000"
"productid" => "1"
"id" => "1"
]
但是数据库还没有更新。
我的 table 名字是 Table: subscription_plans
型号是 SubscriptionPlan
这些是 table 列:
protected $fillable = [
'name',
'description',
'price',
'usage_limit',
'charge_per_unit',
'charge_per_unit_exceed',
'is_limit_exceed_considered',
'product_id'
];
关于如何解决它或我做错了什么的任何想法?
为了 Laravel 自动填充模型属性,传递给 fill 方法的数组索引必须与您的模型属性名称相对应。
此外,而不是
$subscriptionplan->update($request->all());
使用
$subscriptionplan->fill($request->all());
然后用$subscriptionplan->save();
如果您的解决方案不起作用,请像这样尝试 1by1。
public function update(Request $request)
{
$subscriptionplan = SubscriptionPlan::find($request->id);
$subscriptionplan->_method = $request->_method;
$subscriptionplan->_token = $request->_token;
$subscriptionplan->editname = $request->editname;
$subscriptionplan->editdesc = $request->editdesc;
$subscriptionplan->editprice = $request->editprice;
$subscriptionplan->editlimit = $request->editlimit;
$subscriptionplan->editperunit = $request->editperunit;
$subscriptionplan->editexceedunit = $request->editexceedunit;
$subscriptionplan->productid = $request->productid;
$subscriptionplan->save();
return back();
}