При создании записи в БД не назначать user_id?

При создании записи (пользователь создаёт пароль, выбирает категорию). Как реализовать так что бы можно было создавать запись без user_id, ставишь галочку общий и в базе эта запись становится без user_id.

/**
 * Store a newly created resource in storage.
 *
 * @param  \Illuminate\Http\Request  $request
 * @return \Illuminate\Http\Response
 */
public function store(Request $request) {
    $id = Auth::user()->id;
    $pass = new Pass();
    $pass->title = $request->title;
    $pass->category_id = $request->category_id;
    $pass->user_id = $id;
    $pass->save();
    return redirect()->route('home');
}

Фрагмент из вьюшки в которой создаем запись(пароль)

<div class="form-group">
<input name="title" type="text" class="form-control"  required value="{{ $pass->title ?? ''}}">
</div>
<div class="form-group">
    <label for="category_id">Категория</label>
    <select name="category_id" id="category_id" class="form-control">
        @foreach ($categorys as $category)
            <option value="{{$category->id}}">{{$category->title}}</option>
        @endforeach
    </select>
</div>

Ответы (1 шт):

Автор решения: E_K

Нужно установить колонку внешнего ключа как nullable.

$table->foreignId('user_id')->nullable()->constrained();

Теперь можно создавать запись без user_id.

→ Ссылка