Вставьте значение в столбец NOT NULL int в SQL Laravel Красноречивый

#php #sql #laravel #eloquent #insert

Вопрос:

 $add_v = new AppModelsHmsBbrCategory;
$add_v->id->max(id) 1;
$add_v->category_id->max(category_id) 1;
$add_v->category_name='Insert 1';
$add_v->category_description='Insert Desc';
$add_v->created_by='Me';
$add_v->created_datetime=CURRENT_TIMESTAMP;
$add_v->save();
 

1

Мне нужно, чтобы эта красноречивая вставка данных в мою таблицу с моими первыми двумя столбцами, id, category_id, была добавлена с автоматическим приращением, в частности, наибольшее значение 1.

в моем коде выше есть ошибка:

 SymfonyComponentDebugExceptionFatalThrowableError
Call to a member function max() on null
 

что я могу сделать в «max ()», чтобы это работало по назначению? любая помощь будет признательна, спасибо.

Комментарии:

1. Вам действительно нужен category_id, а также идентификатор?

2. да, мне нужно и то, и другое

3. Как правило, выполнение max() 1 не особенно безопасно, что делать, если 2 запроса попытаются вставить запись одновременно — они оба могут получить один и тот же идентификатор.

Ответ №1:

у вас есть ошибка в

 $add_v->category_id->max(category_id) 1;
 

Я думаю, тебе нужно

 $category=AppModelsHmsBbrCategory::orderByDesc('id')->first();
 

затем

  $add_v->category_id=$category->id 1;