【发布时间】:2018-09-30 08:07:28
【问题描述】:
如果复选框选择值为 1,我将尝试保存我的复选框值,否则将为 0。
但我不知道我的错误值没有保存到我的数据库中,请查看我的表单。
我的表格:
<form id="preferences_form" role="form" method="POST" novalidate action="{{ url('/preference') }}" class="mujucet-registration">
<h5>Nastavení zpráv</h5>
<div class="row">
<div class="col-md-4">
<div class="checkbox">
<label for="ch1">
<input type="checkbox" name="monthly" id="ch1"><span class="cr"><i class="cr-icon fa fa-check"></i></span>Měsíční výpisy
</label>
</div>
</div>
<div class="col-md-4">
<div class="checkbox">
<label >
<input type="checkbox" name="weekly"><span class="cr"><i class="cr-icon fa fa-check"></i></span>Týdenní přehled
</label>
</div>
</div>
<div class="col-md-4">
<div class="checkbox">
<label>
<input type="checkbox" name="tax_reviews"><span class="cr"><i class="cr-icon fa fa-check"></i></span>Daňové výpisy
</label>
</div>
</div>
<div class="col-md-4">
<div class="checkbox">
<label>
<input type="checkbox" name="quarterly"><span class="cr"><i class="cr-icon fa fa-check"></i></span>Čtvrtletní výpisy
</label>
</div>
</div>
<div class="col-md-4">
<div class="checkbox">
<label>
<input type="checkbox" name="annually"><span class="cr"><i class="cr-icon fa fa-check"></i></span>Roční výpisy
</label>
</div>
</div>
<div class="col-md-4">
<div class="checkbox">
<label>
<input type="checkbox" name="newsletter"><span class="cr"><i class="cr-icon fa fa-check"></i></span>Novinky
</label>
</div>
</div>
<div class="col-md-12">
<div class="checkbox">
<label class="border">
<input type="checkbox" name="direct_mail_reviews"><span class="cr"><i class="cr-icon fa fa-check"></i></span> Chci výpisy zasílat také Poštou <span class="light">20 kč za výpis</span>
</label>
</div>
</div>
</div><h5>Kontaktní preference</h5>
<div class="row">
<div class="col-md-4">
<div class="checkbox">
<label>
<input type="checkbox" name="email"><span class="cr"><i class="cr-icon fa fa-check"></i></span>Email
</label>
</div>
</div>
<div class="col-md-4">
<div class="checkbox">
<label>
<input type="checkbox" name="sms"><span class="cr"><i class="cr-icon fa fa-check"></i></span>SMS
</label>
</div>
</div>
</div>
</form>
我保存我的值的控制器操作:
public function preferences(Request $request)
{
$user = Auth::guard()->user();
$preferences = new Preference();
$preferences->userID = $user;
$preferences->monthly = Input::get('monthly')? 1 : 0;
$preferences->weekly = Input::get('weekly')? 1 : 0;
$preferences->tax_reviews = Input::get('tax_reviews')? 1 : 0;
$preferences->quarterly = Input::get('quarterly')? 1 : 0;
$preferences->quarterly = Input::get('quarterly')? 1 : 0;
$preferences->annually = Input::get('annually')? 1 : 0;
$preferences->newsletter = Input::get('newsletter')? 1 : 0;
$preferences->direct_mail_reviews = Input::get('direct_mail_reviews')? 1 : 0;
$preferences->email = Input::get('email')? 1 : 0;
$preferences->sms = Input::get('sms')? 1 : 0;
$preferences->save();
return back();
}
我正在使用 javascript 代码通过按钮保存值:
submitForms = function(){
document.getElementById("preferences_form").submit();
}
还有我的模特:
class Preference extends Model
{
protected $table = 'db_preferences';
protected $fillable = ['userID','monthly','weekly','tax_reviews','quarterly','annually','newsletter','direct_mail_reviews','email','sms'];
}
如果我错了,请通知我您的帮助将不胜感激。 提前致谢
【问题讨论】:
-
错误是什么?
-
我没有看到任何错误
-
在您调用控制器中的
$preferences->save();之前,您是否已验证所有值都是您期望的值?该问题还可能与您对数据库列的任何限制有关,因此如果您也可以发布这些限制,那将有所帮助。作为旁注,我不确定为什么你会使用 javascript 来发布表单,而这可能可以直接在 HTML 中实现,但话虽如此,我不是 PHP 或 laravel 方面的专家 -
我需要用相同的按钮再保存一个表单,这就是我使用 javascript 的原因
-
我已将我的类型设置为 int,因为我想保存值 1 或 0