У меня есть этот столбец is_default
, который принимает 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>
Мой VariantsController@store
:
DB::transaction(function() use ($request){
$variant = Variant::firstorCreate([
//some more code here
'is_default' => $request->is_default
]);
});
В моей таблице вариантов у меня есть product_id
, который является внешним ключом таблицы продуктов. и у меня есть столбец is_default
. Теперь у продукта может быть много вариантов, но для каждого продукта должен быть только один вариант по умолчанию.
Так что это что-то вроде (если флажок установлен)
$checkdefault = Variant::where('product_id',$product)...
найти, есть ли '1' в is_default
и если нет '1', то база данных сохранит ее, иначе она сохранит ноль и вернет всплеск, который говорит: «Должен быть только один вариант по умолчанию "
Я не знаю, хорошо ли объясняет мое объяснение, но я ценю любую помощь.