Работа с первичными ключами в Laravel: методы и примеры кода

Вот несколько распространенных методов и примеров кода, связанных с работой с первичными ключами в Laravel:

  1. Получение последнего вставленного первичного ключа:

    $id = DB::table('users')->insertGetId([
    'name' => 'John Doe',
    'email' => 'johndoe@example.com',
    ]);

    В этом примере метод insertGetIdиспользуется для вставки новой записи в таблицу «пользователи» и получения последнего вставленного первичного ключа.

  2. Получение значения первичного ключа экземпляра модели:

    $user = User::find(1);
    $id = $user->id;

    Здесь мы извлекаем запись пользователя с идентификатором 1 с помощью метода findи получаем доступ к значению ее первичного ключа через свойство id.

  3. Указание пользовательского первичного ключа в модели:

    class User extends Model
    {
    protected $primaryKey = 'user_id';
    // ...
    }

    В этом случае первичный ключ таблицы «пользователи» установлен на «user_id» вместо «id» по умолчанию. Вы можете определить это в своей модели, переопределив свойство $primaryKey.

  4. Определение неинкрементируемого первичного ключа:

    class User extends Model
    {
    public $incrementing = false;
    // ...
    }

    По умолчанию Laravel предполагает, что первичный ключ представляет собой автоматически увеличивающееся целое число. Вы можете установить для свойства $incrementingзначение falseв вашей модели, если у вас есть неинкрементирующий первичный ключ, например UUID.

  5. Использование составного первичного ключа:

    class User extends Model
    {
    protected $primaryKey = ['account_id', 'user_id'];
    // ...
    }

    В некоторых случаях у вас может быть составной первичный ключ, состоящий из нескольких столбцов. Вы можете указать составной первичный ключ в своей модели, указав массив имен столбцов в свойстве $primaryKey.