если в базе данных уже есть «1», база данных не примет другую «1». Он будет принимать только «0» - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть этот столбец 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', то база данных сохранит ее, иначе она сохранит ноль и вернет всплеск, который говорит: «Должен быть только один вариант по умолчанию "

Я не знаю, хорошо ли объясняет мое объяснение, но я ценю любую помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...