CRUD с Eloquent
Создавайте, читайте, изменяйте и удаляйте записи с помощью методов Eloquent
«CRUD с Eloquent» — бесплатный урок PHP Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения PHP Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс PHP Academy содержит 4 уроков всего.
Создание — save()
Создайте экземпляр модели, задайте атрибуты и вызовите save().
<?php
$post = new Post();
$post->title = "Hello World";
$post->body = "My first post";
$post->save(); // INSERT INTO posts ...Создание — create()
Model::create() вставляет строку одной строкой кода с помощью массового присваивания. Для этого необходимо задать $fillable.
<?php
$post = Post::create([
"title" => "Hello World",
"body" => "My first post",
"user_id" => auth()->id(),
]);firstOrCreate и updateOrCreate
firstOrCreate() находит подходящую запись или создаёт её. updateOrCreate() находит и обновляет запись либо создаёт её.
<?php
// Find or create:
$tag = Tag::firstOrCreate(["name" => "PHP"]);
// Update or create:
$setting = Setting::updateOrCreate(
["key" => "theme"],
["value" => "dark"]
);Чтение — all()
Получите все строки в виде коллекции Eloquent.
<?php
$posts = Post::all(); // SELECT * FROM posts
foreach ($posts as $post) {
echo $post->title;
}Чтение — find()
Найдите запись по первичному ключу. Если запись не найдена, возвращается null. Метод findOrFail() вызывает исключение 404, если запись не найдена.
<?php
$post = Post::find(1);
$post = Post::findOrFail(1); // throws ModelNotFoundException if missingЧтение — where()
Фильтруйте записи с помощью условий where(). Объединяйте несколько условий в цепочку.
<?php
$published = Post::where("is_published", true)
->where("user_id", $userId)
->orderBy("created_at", "desc")
->get();Обновление — save()
Измените атрибуты существующей модели и вызовите save() — будет создан запрос UPDATE.
<?php
$post = Post::findOrFail(1);
$post->title = "Updated Title";
$post->save(); // UPDATE posts SET title=... WHERE id=1Обновление — update()
Массово обновите несколько записей, соответствующих запросу, одним вызовом SQL.
<?php
Post::where("user_id", $userId)
->update(["is_published" => false]);Удаление — delete()
Удалите полученный экземпляр модели.
<?php
$post = Post::findOrFail(1);
$post->delete(); // DELETE FROM posts WHERE id=1Удаление — destroy()
Post::destroy($id) удаляет запись по первичному ключу, не получая модель заранее.
<?php
Post::destroy(1);
Post::destroy([1, 2, 3]); // delete multipleРазбиение на страницы
Используйте paginate(), чтобы вернуть объект постраничной навигации с автоматическими LIMIT/OFFSET.
<?php
$posts = Post::latest()->paginate(15);
// In Blade: {{ $posts->links() }}Итоги
Eloquent предоставляет create() / save() для вставки, find() / where() для чтения, save() / update() для обновления и delete() / destroy() для удаления.
Быстрая проверка
Какой метод вызывает исключение, если запись не найдена?
Часто задаваемые вопросы
Урок «CRUD с Eloquent» бесплатный?
Да — полный текст урока «CRUD с Eloquent» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс PHP Academy, подпишись на CoddyKit PRO. Курс PHP Academy содержит 4 уроков всего.
Чему я научусь в уроке «CRUD с Eloquent»?
Создавайте, читайте, изменяйте и удаляйте записи с помощью методов Eloquent Ты практикуешь PHP Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать PHP Academy?
Предыдущий опыт не требуется. PHP Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «CRUD с Eloquent»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке PHP Academy?
Да. Каждый урок PHP Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.