РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
79 of 1392 menu

Поле id

Поле id является стандартным первичным ключом во всех таблицах Laravel. По умолчанию это автоматически инкрементируемое целое число, которое создается в миграции с помощью метода id. Eloquent автоматически использует это поле в качестве основного идентификатора для каждой модели. Если вы не укажете другое поле, Laravel будет считать, что первичный ключ называется id и имеет тип int с автоинкрементом.

Создание поля id в миграции

Для создания поля id в миграции используется метод id, который автоматически создает целочисленное поле с автоинкрементом и устанавливает его как первичный ключ:

<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { public function up(): void { Schema::create('articles', function (Blueprint $table) { $table->id(); $table->string('title'); $table->text('content'); $table->timestamps(); }); } public function down(): void { Schema::dropIfExists('articles'); } }; ?>

Работа с id в модели

Модель автоматически использует поле id как первичный ключ. После сохранения записи вы можете получить ее идентификатор:

<?php namespace App\Http\Controllers; use App\Models\Article; use Illuminate\Http\Request; class ArticleController extends Controller { public function store(Request $request) { $article = new Article(); $article->title = 'Article title'; $article->content = 'Article content'; $article->save(); $res = $article->id; echo $res; } } ?>

Результат выполнения кода:

"1"

Настройка первичного ключа

Если вы хотите использовать поле, отличное от id, или изменить его поведение, вы можете указать это в модели:

<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; class Article extends Model { protected $primaryKey = 'article_id'; public $incrementing = false; protected $keyType = 'string'; } ?>

После настройки вы можете работать с кастомным первичным ключом:

<?php namespace App\Http\Controllers; use App\Models\Article; class ArticleController extends Controller { public function show() { $article = Article::where('article_id', 'abc-123')->first(); if ($article) { echo $article->article_id; } } } ?>

Использование id в запросах

Поле id часто используется для поиска записей с помощью метода find:

<?php namespace App\Http\Controllers; use App\Models\Article; class ArticleController extends Controller { public function show($id) { $article = Article::find($id); if ($article) { echo $article->title; } $article2 = Article::findOrFail(3); echo $article2->title; } } ?>

Результат выполнения кода:

"Article title" "Article title 3"

Получение последнего id

Вы можете получить идентификатор последней вставленной записи с помощью свойства id или метода insertGetId:

<?php namespace App\Http\Controllers; use App\Models\Article; use Illuminate\Support\Facades\DB; class ArticleController extends Controller { public function store() { $id = DB::table('articles')->insertGetId([ 'title' => 'New article', 'content' => 'Content of new article' ]); echo $id; } } ?>

Смотрите также

  • метод string,
    который создает строковое поле
  • метод foreignId,
    который создает поле для внешнего ключа
  • метод unsignedBigInteger,
    который создает большое беззнаковое целое
  • метод uuid,
    который создает строковое поле для UUID
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить