Как сделать 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>

Ответы (0)