2015-12-14 7 views
5

У меня есть форма, в которой пользователь может публиковать проект в базе данных вместе с созданием нового пользователя, где оба связаны друг с другом.«Laravel 5.1» добавить пользователя и проект с userId

Значения usersid и projects.user_id в таблице. Но у меня небольшая проблема. Если я получу последний идентификатор из таблицы users и использую этот +1 для следующего id, он работает. но если пользователь удаляется перед добавлением нового проекта с идентификатором, он может стать действительно запутанным при запуске приложения.

предположим, что я получил последнего пользователя как идентификатор 5 в таблице. но кто-то удалил его, и я сделал новый проект с новым пользователем на следующий день. Теперь следующий идентификатор будет id 6. Но в соответствии с моим кодом он отображает 5 в project_table, но в user_table это будет 6.

Мне было интересно, может ли кто-нибудь предложить мне функцию, которую я мог бы использовать для получения правильного идентификатора?

функция для получения последнего идентификатора

public static function getLastRow(){ 
      $data = DB::table('users')->select('id') 
       ->orderBy('id', 'desc') 
       ->first(); 
      return $data->id; 
     } 

перед тем валидатор я сосчитать последний идентификатор для добавления его проектов

$lastidplus = (int)User::getLastRow() + 1; 

в моем валидатора у меня есть это:

'user_id' => $lastidplus, 

ПРИМЕЧАНИЕ :: это работает, но если в будущем последняя строка в таблице пользователей будет удалена. в соответствующей таблице проектов появится цепная реакция ложных идентификаторов, так как он всегда будет иметь 1 разницу. и я хочу сделать это невозможным.

+2

спасибо @Raj за то, что немного лучше. будет уделять больше внимания при создании должности снова! –

+2

, так как ваш английский недостаточно хорош, можете ли вы включить код в свой вопрос, чтобы мы могли лучше понять – Digitlimit

+1

@StefanoGroenland ur всегда wlcm – CandleCoder

ответ

2

Если вы пытаетесь получить идентификатор вновь созданной записи попытки:

$user = User::create(['name'=>'Stefano']); 
$user->id 
+2

сделал это с '$ user = User :: create (...)' ''gebruiker_id' => $ user-> id' спасибо за то, что дал мне и идею! –

Смежные вопросы