Как сделать crud на laravel
Узнайте, как создать CRUD-приложение на Laravel с примером кода. Следуйте пошаговой инструкции и узнайте, как использовать инструменты для разработки веб-приложения.
Laravel предлагает мощный инструмент для создания CRUD приложений. CRUD означает Create, Read, Update и Delete (Создание, Чтение, Обновление и Удаление). Это основные принципы баз данных для всех реляционных баз данных, которые используются при создании веб-приложений. С помощью Laravel мы можем легко создать CRUD приложение, используя маршруты, модели, представления и другие функции, предоставляемые Laravel.
Шаг 1: Установка и настройка Laravel
Первым делом нам необходимо установить и настроить Laravel для работы с CRUD. Для этого мы должны иметь доступ к серверу с поддержкой PHP и базой данных MySQL. Далее мы создаем проект Laravel командой:
composer create-project --prefer-dist laravel/laravel crud
Здесь crud это имя проекта, которое мы создаем. Далее мы заходим в папку проекта и настраиваем подключение к базе данных в файле .env. В этом файле мы задаем переменные для подключения к базе данных, например:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=crud
DB_USERNAME=root
DB_PASSWORD=
Здесь мы используем имя базы данных crud и имя пользователя root. Вы можете использовать любое другое имя базы данных и пользователя.
Шаг 2: Создание модели
Создание модели базы данных является одним из важных шагов при создании CRUD приложения. С помощью модели мы можем отслеживать и обновлять данные в базе данных. С помощью команды Artisan мы можем легко создать модель:
php artisan make:model Post -m
Здесь post это имя модели, а параметр -m означает, что нам нужно создать миграцию. Миграция используется для создания таблицы в базе данных. Далее мы можем редактировать миграцию для добавления полей в таблицу:
Schema::create('posts', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->text('body');
$table->timestamps();
});
Здесь мы создаем таблицу с именем posts с полями id, title, body и timestamp. Далее мы можем запустить миграцию, используя команду:
php artisan migrate
Эта команда создаст таблицу в базе данных.
Шаг 3: Создание контроллера
Далее вам нужно создать контроллер для обработки CRUD операций. Для этого мы можем использовать команду Artisan:
php artisan make:controller PostController
Здесь PostController это имя контроллера. Далее мы можем добавить методы для реализации CRUD операций в контроллере:
public function index()
{
$posts = Post::all();
return view('posts.index', compact('posts'));
}
public function create()
{
return view('posts.create');
}
public function store(Request $request)
{
$this->validate($request, [
'title' => 'required|unique:posts|max:255',
'body' => 'required',
]);
$post = new Post;
$post->title = $request->title;
$post->body = $request->body;
$post->save();
return redirect()->route('posts.index');
}
public function show($id)
{
$post = Post::findOrFail($id);
return view('posts.show', compact('post'));
}
public function edit($id)
{
$post = Post::findOrFail($id);
return view('posts.edit', compact('post'));
}
public function update(Request $request, $id)
{
$this->validate($request, [
'title' => 'required|unique:posts|max:255',
'body' => 'required',
]);
$post = Post::findOrFail($id);
$post->title = $request->title;
$post->body = $request->body;
$post->save();
return redirect()->route('posts.index');
}
public function destroy($id)
{
$post = Post::findOrFail($id);
$post->delete();
return redirect()->route('posts.index');
}
Здесь мы создаем методы для каждой CRUD операции. Мы также используем валидацию для проверки полей.
Шаг 4: Создание представлений
Теперь мы можем создать представления для приложения. Представления используются для показа данных пользователю. В Laravel мы можем легко создать представления, используя шаблонизатор Blade. Создадим представления для каждой CRUD операции. Например, для просмотра всех постов, мы можем создать представление с именем index.blade.php:
<h1>Posts</h1>
<table>
<thead>
<tr>
<th>Title</th>
<th></th>
</tr>
</thead>
<tbody>
@foreach ($posts as $post)
<tr>
<td>{{ $post->title }}</td>
<td>
<a href="{{ route('posts.show', $post->id) }}">View</a> |
<a href="{{ route('posts.edit', $post->id) }}">Edit</a> |
<form action="{{ route('posts.destroy', $post->id) }}" method="POST">
@csrf
@method('DELETE')
<input type="submit" value="Delete">
</form>
</td>
</tr>
@endforeach
</tbody>
</table>