Skip to content

neeMalevich/laravel-test-cutcode

Repository files navigation

ВСст Π½Π° Π·Π½Π°Π½ΠΈΠ΅ основ laravel

Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ слуТит Ρ†Π΅Π»ΡŒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π·Π½Π°Π½ΠΈΠΉ основ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° laravel, Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Ρ‚Π΅ΠΌ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π² roadmap здСсь: CutCode Junior Roadmap

Π’ΠΈΠ΄Π΅ΠΎ инструкции

ЦСль создания Ρ‚Π°ΠΊΠΎΠ³ΠΎ тСстирования Π±Ρ‹Π»ΠΎ ΠΎΡ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ Ρ€Π°Π·Π΄Π΅Π»Ρ‹ laravel ΠΈ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΏΠΎΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ тСстами ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° laravel.

ОглавлСниС ΠΏΠΎ Ρ‚Π΅ΠΌΠ°ΠΌ

  1. ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ
  2. ΠœΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡ
  3. Blade template
  4. Eloquent model
  5. Валидация
  6. АутСнтификация

Для Π½Π°Ρ‡Π°Π»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ тСсты.

Установка

  • composer install
  • php artisan key:generate
  • .env с Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π°ΠΌΠΈ mysql Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…
  • ΠšΠ ΠΠ™ΠΠ• Π’ΠΠ–ΠΠž Π§Π’ΠžΠ‘Π« БАЗА ДАННЫΠ₯ НАЗЫВАЛАБЬ laravel_skill_test

ΠŸΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ΡΡ

  • php >= 7.3
  • mysql

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°

  • php artisan test --filter MigrationsTest
  • php artisan test --filter RouteTest
  • php artisan test --filter BladeTest
  • php artisan test --filter ModelTest
  • php artisan test --filter ValidationTest
  • php artisan test --filter AuthTest
  • php artisan test

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ

Π˜ΡΠΊΠ°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρƒ TODO Π² IDE (игнорируя Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ /storage), Π»ΠΈΠ±ΠΎ ΠΏΠΎ списку Π·Π°Π΄Π°Π½ΠΈΠΉ

ΠŸΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ выполнСния тСста

PR Π² Π²Π΅Ρ‚ΠΊΡƒ master (автоматичСски запустит тСст ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ)

Задания

1) ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ

ВсС задания находятся здСсь database/migrations/tasks

  • ВСсты tests/Feature/MigrationsTest.php
  • Запуск php artisan test --filter MigrationsTest

Π—Π°Π΄Π°Π½ΠΈΠ΅ 1: Новая Ρ‚Π°Π±Π»ΠΈΡ†Π°

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ categories с 2 полями id ΠΈ title (Π½Π΅ Π·Π°Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎ timestamps)


Π—Π°Π΄Π°Π½ΠΈΠ΅ 2: Nullable

Для title ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ NULL


Π—Π°Π΄Π°Π½ΠΈΠ΅ 3: Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

Для active ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ TRUE


Π—Π°Π΄Π°Π½ΠΈΠ΅ 4: Soft Deleting

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» soft delete


Π—Π°Π΄Π°Π½ΠΈΠ΅ 5: Timestamps

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ поля с timestamps (created_at, updated_at) Ρ‡Π΅Ρ€Π΅Π· 1 ΠΌΠ΅Ρ‚ΠΎΠ΄


Π—Π°Π΄Π°Π½ΠΈΠ΅ 6: НовоС ΠΏΠΎΠ»Π΅ с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ порядка

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π΅ description Ρ‚ΠΈΠΏΠ° text (DEFAULT NULL) ΠŸΠžΠ‘Π›Π• поля title


Π—Π°Π΄Π°Π½ΠΈΠ΅ 7: ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия поля

Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅ΠΊΡƒ Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ поля active ΠΈ Π² случаи успСха Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π΅ main (boolean default false)


Π—Π°Π΄Π°Π½ΠΈΠ΅ 8: ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π΅

ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π΅ title Π² name


Π—Π°Π΄Π°Π½ΠΈΠ΅ 9: ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ

ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ posts Π² articles


Π—Π°Π΄Π°Π½ΠΈΠ΅ 10: belongsToMany

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ для связи articles ΠΈ categories (belongsToMany) c foreign ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ


2) ΠœΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡ (Route)

ВсС задания находятся здСсь routes/web.php ΠΈ routes/api.php

  • ВСсты tests/Feature/RouteTest.php
  • Запуск php artisan test --filter RouteTest

Π—Π°Π΄Π°Π½ΠΈΠ΅ 1: View

По GET ΡƒΡ€Π»Ρƒ /hello ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ view - /resources/views/hello.blade (Π±Π΅Π· ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°)


Π—Π°Π΄Π°Π½ΠΈΠ΅ 2: Controller

По GET ΡƒΡ€Π»Ρƒ / ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ IndexController, ΠΌΠ΅Ρ‚ΠΎΠ΄ index


Π—Π°Π΄Π°Π½ΠΈΠ΅ 3: View с Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ€ΠΎΡƒΡ‚Π°

По GET ΡƒΡ€Π»Ρƒ /page/contact ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ view - /resources/views/pages/contact.blade с Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ€ΠΎΡƒΡ‚Π° - contact


Π—Π°Π΄Π°Π½ΠΈΠ΅ 4: ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

По GET ΡƒΡ€Π»Ρƒ /users/[id] ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ UserController -> ΠΌΠ΅Ρ‚ΠΎΠ΄ show Π±Π΅Π· Route Model Binding. Волько ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ id


Π—Π°Π΄Π°Π½ΠΈΠ΅ 5: Model Binding

По GET ΡƒΡ€Π»Ρƒ /users/bind/[user] ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ UserController -> ΠΌΠ΅Ρ‚ΠΎΠ΄ showBind Π½ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Route Model Binding. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ user


Π—Π°Π΄Π°Π½ΠΈΠ΅ 6: Π Π΅Π΄ΠΈΡ€Π΅ΠΊΡ‚

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ€Π΅Π΄ΠΈΡ€Π΅ΠΊΡ‚ с ΡƒΡ€Π»Π° /bad Π½Π° ΡƒΡ€Π» /good


Π—Π°Π΄Π°Π½ΠΈΠ΅ 7: Resource controller

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ€ΠΎΡƒΡ‚ Π½Π° рСсурс ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ - UserCrudController с ΡƒΡ€Π»ΠΎΠΌ - /users_crud


Π—Π°Π΄Π°Π½ΠΈΠ΅ 8: Π“Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ°

ΠžΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΡƒ Ρ€ΠΎΡƒΡ‚ΠΎΠ² (Route::group()) ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹Ρ… прСфиксом - dashboard


Π—Π°Π΄Π°Π½ΠΈΠ΅ 9: Π“Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΠΎΠ΄Π·Π°Π΄Π°Ρ‡ΠΈ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ€ΠΎΡƒΡ‚ GET /admin -> Admin/IndexController -> index


Π—Π°Π΄Π°Π½ΠΈΠ΅ 10: Π“Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΠΎΠ΄Π·Π°Π΄Π°Ρ‡ΠΈ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ€ΠΎΡƒΡ‚ POST /admin/post -> Admin/IndexController -> post


Π—Π°Π΄Π°Π½ΠΈΠ΅ 11: Middleware

ΠžΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΡƒ Ρ€ΠΎΡƒΡ‚ΠΎΠ² (Route::group()) ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹Ρ… прСфиксом - security ΠΈ ΠΌΠΈΠ΄Π»Π²Π°Ρ€ΠΎΠΌ auth


Π—Π°Π΄Π°Π½ΠΈΠ΅ 12: Middleware ΠΏΠΎΠ΄Π·Π°Π΄Π°Ρ‡ΠΈ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ€ΠΎΡƒΡ‚ GET /admin/auth -> Admin/IndexController -> auth


Π—Π°Π΄Π°Π½ΠΈΠ΅ 13: ApiResource (routes/api.php)

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ apiResource ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ - Api/V1/UserController

  • ΠŸΡ€Π΅Ρ„ΠΈΠΊΡ ΡƒΡ€Π»Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ /api/v1
  • ΠŸΠΎΠ»Π½Ρ‹ΠΉ ΡƒΡ€Π» /api/v1/users (Π½Π΅ Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅ Ρ‡Ρ‚ΠΎ это api routes)

3) Blade template

  • ВСсты tests/Feature/BladeTest.php
  • Запуск php artisan test --filter BladeTest

Π—Π°Π΄Π°Π½ΠΈΠ΅ 1: ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π²ΠΎ view

Http/Controllers/IndexController.php ΠŸΠ΅Ρ€Π΅Π΄Π°ΠΉΡ‚Π΅ users Π²ΠΎ view (Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π° users)


Π—Π°Π΄Π°Π½ΠΈΠ΅ 2: Layout

resources/views/table.blade.php Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ этой view, Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ Π΅Π΅ с использованиСм layout


Π—Π°Π΄Π°Π½ΠΈΠ΅ 3: Include

resources/views/layouts/app.blade.php ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ view с мСню shared/menu.blade.php


Π—Π°Π΄Π°Π½ΠΈΠ΅ 4: Auth

resources/views/auth.blade.php Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΈΠ»ΠΈ Π½Π΅Ρ‚. Если Π΄Π° Ρ‚ΠΎ вывСсти ID ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. ID ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ вывСсти Π²Π½ΡƒΡ‚Ρ€ΠΈ конструкции с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ


Π—Π°Π΄Π°Π½ΠΈΠ΅ 5: Component

resources/views/welcome.blade.php Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ blade component с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ HelloWorld с содСрТимым Π²ΠΎ view - ВСкущая Π΄Π°Ρ‚Π° Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Y-m-d.

  • ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ условиС Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π² AppServiceProvider ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ alias Π½Π° hello
  • Π’ ΠΈΡ‚ΠΎΠ³Π΅ alias - hello Π° класс ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° App\View\Components\HelloWorld
  • ВывСсти Π΅Π³ΠΎ Π² ΡƒΠΊΠ°Π·Π°Π½ΠΎΠΌ мСстС

Π—Π°Π΄Π°Π½ΠΈΠ΅ 6: Each

resources/views/table.blade.php Π’ эту view с ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° пСрСдаСтся collection c users Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ data.

  • Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ foreach loop Π² ΠΎΠ΄Π½Ρƒ строку (ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°)
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ view shared/user.blade.php для item (пСрСмСнная user Π²ΠΎ item view)
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ view shared/empty.blade.php для состояния ΠΊΠΎΠ³Π΄Π° Π½Π΅Ρ‚ элСмСнтов

Π—Π°Π΄Π°Π½ΠΈΠ΅ 7: ForEach

resources/views/table.blade.php Π—Π΄Π΅ΡΡŒ сдСлайтС классичСский foreach loop

  • Π’Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ div с $user->name
  • Π’ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ $loop ΠΈ Ρƒ Π½Π΅Ρ‡Π΅Ρ‚Π½Ρ‹Ρ… div Π²Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ класс - bg-red-500

4) Eloquent Models

  • ВСсты tests/Feature/ModelTest.php
  • Запуск php artisan test --filter ModelTest

Π—Π°Π΄Π°Π½ΠΈΠ΅ 1: Π’Π°Π±Π»ΠΈΡ†Π°

Models/Item.php Π£ΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π° Ρƒ ΠΌΠΎΠ΄Π΅Π»ΠΈ - products


Π—Π°Π΄Π°Π½ΠΈΠ΅ 2: Basic query

Http/Controllers/EloquentController.php Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠ΄Π΅Π»ΠΈ Item Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ запрос

  • select * from products where active = true order by created_at desc limit 3

Π—Π°Π΄Π°Π½ΠΈΠ΅ 3: Scopes

Http/Controllers/EloquentController.php Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² модСль Item scope для Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² (scopeActive())


Π—Π°Π΄Π°Π½ΠΈΠ΅ 4: 404

Http/Controllers/EloquentController.php Найти ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΏΠΎ id ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π²ΠΎ view Π»ΠΈΠ±ΠΎ ΠΎΡ‚Π΄Π°Ρ‚ΡŒ 404 страницу


Π—Π°Π΄Π°Π½ΠΈΠ΅ 5: Create

Http/Controllers/EloquentController.php Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ простоС Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ записи


Π—Π°Π΄Π°Π½ΠΈΠ΅ 6: Update

Http/Controllers/EloquentController.php Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ простоС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ записи


Π—Π°Π΄Π°Π½ΠΈΠ΅ 7: Delete

Http/Controllers/EloquentController.php Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ массовоС ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ записСй

5) Валидация

  • ВСсты tests/Feature/ValidationTest.php
  • Запуск php artisan test --filter ValidationTest

Π—Π°Π΄Π°Π½ΠΈΠ΅

Http/Requests/ItemStoreRequest.php Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ для поля title

  • ПолС ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ
  • Π‘Ρ‚Ρ€ΠΎΠΊΠΎΠ²ΠΎΠ΅
  • Минимам 5 символов
  • ΠœΠ°ΠΊΡΠΈΠΌΡƒΠΌ 15 символов

6) АутСнтификация

  • ВСсты tests/Feature/AuthTest.php
  • Запуск php artisan test --filter AuthTest

Π—Π°Π΄Π°Π½ΠΈΠ΅

Policies/ItemPolicy.php Π Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ с id = 10

Π’ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ слоТности

Π•ΡΡ‚ΡŒ прСдлоТСния? Π’ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹? НС ΡΡ‚Π΅ΡΡ‚Π½ΡΠΉΡ‚Π΅ΡΡŒ ΠΈ ΠΏΠΈΡˆΠΈΡ‚Π΅ GitHub Issues.

Π–Π΅Π»Π°ΡŽ всСм ΡƒΠ΄Π°Ρ‡ΠΈ!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published