获取用户是否在 laravel 中 select 从 select 编辑了任何新选项
Get if the user has selected any new option from select in laravel
我正在使用 laravel 背包,在我的更新功能中有一个表格可以使用 laravel 的 edit
按钮进行编辑,该按钮调用更新功能。
在我的表单中,我有一个 expiry_date
和一个 month
字段,可帮助我的客户更新其用户的订阅。一切正常,这是我的更新功能的代码:
public function update(UpdateRequest $request)
{
date_default_timezone_set('asia/calcutta');
$month = $request->month;
$expiry = new Carbon($request->expiry_date);
$expiry_date = $expiry->addMonths($month);
$request['expiry_date'] = $expiry_date;
// your additional operations before save here
$redirect_location = parent::updateCrud($request);
// your additional operations after save here
// use $this->data['entry'] or $this->crud->entry
return $redirect_location;
}
现在的问题是:
- 每当我的客户单击编辑按钮并编辑
month
以外的字段并单击更新时,它会再次计算到期日期,但我的客户单击该按钮以更新其用户的其他一些详细信息。
我想请问有没有什么方法或东西可以帮助我找到那个:
如果 用户点击了 select of month
并且 select 从 select 中选择了一个选项然后只执行 adding month to expiry_date code
,如果不是,则仅更新用户的详细信息而不影响原始 expiry_date。
如果不是这样,请帮助我找到正确的方法。
感谢和问候
因为没有人回答这个问题。
我通过以下方式解决了它:
1) 月字段允许空值。
2) 并将月份字段的默认值设置为“0”。
像这样:
'name' => 'month',
'label' => "Months",
'type' => 'select2_from_array',
'options' => ['0' => '0','1' => '1', '3' => '3', '6' => '6', '12' => '12'],
'allows_null' => true,
'value' => '0'
// 'allows_multiple' => true, // OPTIONAL; needs you to cast this to array in your model;
], 'update/create/both');
3) 然后在更新函数中我调用了月份的最后一个值,如果它是“0”:
public function update(UpdateRequest $request) {
date_default_timezone_set('asia/calcutta');
$month = $request->month;
if($month != 0)
{
$expiry = new Carbon($request->expiry_date);
$expiry_date = $expiry->addMonths($month);
$request['expiry_date'] = $expiry_date;
}
else
{
$retained_month = Tag::find($request->id);
$month = $retained_month->month;
$request['month'] = $month;
}
// your additional operations before save here
$redirect_location = parent::updateCrud($request);
// your additional operations after save here
// use $this->data['entry'] or $this->crud->entry
return $redirect_location;
}
这解决了问题!!
谢谢
我正在使用 laravel 背包,在我的更新功能中有一个表格可以使用 laravel 的 edit
按钮进行编辑,该按钮调用更新功能。
在我的表单中,我有一个 expiry_date
和一个 month
字段,可帮助我的客户更新其用户的订阅。一切正常,这是我的更新功能的代码:
public function update(UpdateRequest $request)
{
date_default_timezone_set('asia/calcutta');
$month = $request->month;
$expiry = new Carbon($request->expiry_date);
$expiry_date = $expiry->addMonths($month);
$request['expiry_date'] = $expiry_date;
// your additional operations before save here
$redirect_location = parent::updateCrud($request);
// your additional operations after save here
// use $this->data['entry'] or $this->crud->entry
return $redirect_location;
}
现在的问题是:
- 每当我的客户单击编辑按钮并编辑
month
以外的字段并单击更新时,它会再次计算到期日期,但我的客户单击该按钮以更新其用户的其他一些详细信息。
我想请问有没有什么方法或东西可以帮助我找到那个:
如果 用户点击了 select of month
并且 select 从 select 中选择了一个选项然后只执行 adding month to expiry_date code
,如果不是,则仅更新用户的详细信息而不影响原始 expiry_date。
如果不是这样,请帮助我找到正确的方法。
感谢和问候
因为没有人回答这个问题。
我通过以下方式解决了它:
1) 月字段允许空值。
2) 并将月份字段的默认值设置为“0”。
像这样:
'name' => 'month',
'label' => "Months",
'type' => 'select2_from_array',
'options' => ['0' => '0','1' => '1', '3' => '3', '6' => '6', '12' => '12'],
'allows_null' => true,
'value' => '0'
// 'allows_multiple' => true, // OPTIONAL; needs you to cast this to array in your model;
], 'update/create/both');
3) 然后在更新函数中我调用了月份的最后一个值,如果它是“0”:
public function update(UpdateRequest $request) {
date_default_timezone_set('asia/calcutta');
$month = $request->month;
if($month != 0)
{
$expiry = new Carbon($request->expiry_date);
$expiry_date = $expiry->addMonths($month);
$request['expiry_date'] = $expiry_date;
}
else
{
$retained_month = Tag::find($request->id);
$month = $retained_month->month;
$request['month'] = $month;
}
// your additional operations before save here
$redirect_location = parent::updateCrud($request);
// your additional operations after save here
// use $this->data['entry'] or $this->crud->entry
return $redirect_location;
}
这解决了问题!! 谢谢