Php 如果已经有';1';在数据库中,数据库赢得';我不接受另一个';1';。它只接受';0';
我有一个列Php 如果已经有';1';在数据库中,数据库赢得';我不接受另一个';1';。它只接受';0';,php,laravel-5,Php,Laravel 5,我有一个列是默认的,它接受1或0,这取决于是否选中了“默认”复选框 我的create.blade.php <div class="form-check disabled"> <label class="form-check-label"> <input class="form-check-input" type="hidden" value='0' name="is_default"> <input class="form-check
是默认的
,它接受1或0,这取决于是否选中了“默认”复选框
我的create.blade.php
<div class="form-check disabled">
<label class="form-check-label">
<input class="form-check-input" type="hidden" value='0' name="is_default">
<input class="form-check-input" type="checkbox" value='1' name="is_default">
Default Variant
</label>
</div>
在我的变体表中,我有一个product\u id
,它是products表的外键。我有一个默认的列。现在,一个产品可以有许多变体,但每个产品应该只有一个默认变体
所以它就像,(如果复选框被选中)
查找中是否有“1”是默认值,如果没有“1”,则数据库将保存它,否则它将保存一个零并返回一个提示:“应该只有一个默认变量”
我不知道我的解释是否解释得很好,但我感谢任何帮助。它设置为唯一吗?它不能设置为唯一,因为变量表中有很多产品(因此有很多产品id)。我只是对具有相同产品ID的条目进行了说明。在存储新的默认值之前,请将具有该产品ID的所有其他行的is\u default
字段设置为0
。我怀疑是否有办法自动执行此操作,您只需自己编写代码即可。
DB::transaction(function() use ($request){
$variant = Variant::firstorCreate([
//some more code here
'is_default' => $request->is_default
]);
});
$checkdefault = Variant::where('product_id',$product)...