Руководство по Laravel 8 для начинающих: как создать своё первое приложение
Создание первого приложения на Laravel 8 – это отличная возможность для начинающих разработчиков освоить основы фреймворка. В статье пошагово объясняется, как установить Laravel и настроить его для работы, что поможет вам избежать распространенных ошибок на старте.
Вы научитесь не только базовой настройке, но и получите советы по оптимизации вашего рабочего процесса для будущих проектов на Laravel. Этот гид сделает ваш первый опыт создания приложения максимально простым и понятным.
- Введение
- Установка и настройка
- Шаги для пользователей Mac:
- Шаги для пользователей Windows:
- Руководство по созданию простого CRUD-приложения для составления списка дел на Laravel
- Пошаговое создание вашего первого приложения на Laravel
- Создайте ваш проект
- Настройте базу данных
- Создайте аутентификацию
- Миграции
- Модели -Eloquent
- Отношение «один-ко-многим»
- Команда Tinker в Artisan (необязательно)
- Контроллеры
- Маршрутизация
- Представления – шаблоны Blade
- Привязка модели к маршруту (Route-Model Binding)
- Редактируем представления
- Запускаем проект на Localhost
- Заключение
Введение
Laravel – это элегантный, выразительный и гибкий PHP-фреймворк с упором на чистый код и скорость. Он позиционирует себя как «PHP-фреймворк для веб-мастеров». Это бесплатный PHP-фреймворк с открытым исходным кодом, созданный Тейлором Отвелом на основе архитектурной модели Model View Controller (MVC).
Создание веб-приложения с нуля может быть сложной задачей, особенно если вы новичок. Простое веб-приложение содержит различные маленькие и большие компоненты, и вам, возможно, надоест создавать эти компоненты каждый раз, когда вы разрабатываете приложение. Это скучный и повторяющийся процесс, и нет никакого смысла изобретать велосипед. Вот тогда вам на помощь и приходит фреймворк Laravel.

Фреймворк Laravel предоставляет различные PHP-библиотеки и вспомогательные функции. Он обеспечивает общие функции и логику, чтобы упростить и ускорить разработку, а также помочь вам сосредоточиться на более важных вещах.
Сначала придется уделить немного времени обучению, особенно если вы новичок и не имеете опыта работы с какими-либо веб-фреймворками. Но поверьте мне, если вы наловчитесь, вы не только полюбите, но и пристраститесь к Laravel. Этот фреймворк поддерживает творчество в разработке. Он использует слово «Веб-мастер», чтобы указать на креатив, скрытый в сердце разработчика. Результат - эффективное приложение с меньшим количеством строк и хорошо продуманным кодом.
Чтобы вам было легче изучить Laravel, я написал это руководство специально для неопытной аудитории. Так вам будет проще следовать этому руководству и изучать Laravel.
Что вы должны знать перед использованием этого руководства по Laravel?
- HTML/CSS (Естественно).
- Понимание базового PHP.
- Владение PHP на среднем уровне – это не обязательно, но если у вас есть время, изучите некоторые рядовые вещи: ООП в PHP, абстракцию и т. д.
- Базовое понимание фреймворка MVC.
- Усидчивость – несмотря на то, что изучать Laravel довольно легко, спустя какое-то время вам всё же придется испытать собственное терпение. По крайней мере, у меня были некоторые проблемы из-за того, что я знал PHP, но совсем не разбирался в фреймворках. Когда я изучал фреймворк или успешно завершал проекты, я всё равно путался с базовыми вещами, которые лежат в основе фреймворка MVC. Но я не сдавался.
- Увлечение – да ладно вам, ведь веб-разработка – это весело! По крайней мере, когда используешь Laravel. Лучше всего получать наслаждение от своего познавательного путешествия.
Установка и настройка
Laravel предлагает различные способы установки на Windows или Mac. Лучший и самый простой способ установить Laravel – через Composer. Composer - это менеджер зависимостей для PHP, который вы можете установить на свой веб-сервер.
Требования для установки Laravel 8
Перед установкой Laravel на вашу локальную платформу (Localhost) вам необходимо установить следующие программы:
- Веб-сервер – Apache или nginx
- >= PHP 7.3
- Некоторые расширения PHP, которые можно установить заранее:
- BCMath
- Ctype
- Fileinfo
- JSON
- Mbstring
- OpenSSL
- PDO
- Tokenizer
- XML
- MySQL (или другие системы управления базой данных, вы даже можете использовать SQLite).
- Composer
- IDE (интегрированная среда разработки) будет очень полезна для разработки на Laravel. Я рекомендую VS Code или Atom. И то, и другое можно использовать совершенно бесплатно.
Пошаговая установка Laravel на локальном хосте:
Шаги для пользователей Mac:
- Убедитесь, что все компоненты установлены.
- Установите Composer, используя следующую команду (если у вас уже установлен и настроен Composer, пропускайте этот шаг).
brew install composer
- Запустите Composer, чтобы проверить, успешно ли он установлен глобально, как показано ниже.

- Теперь установите Laravel Installer (это отличный CLI-инструмент для создания новых проектов в Laravel с множеством параметров конфигурации!), используя следующую команду:
composer global require “laravel/installer”
- Теперь выполните команду, приведенную ниже, чтобы поместить папку Composer / vendor / bin в переменную $ PATH (если у вас уже был установлен и настроен Composer, пропустите этот шаг).
- Чтобы создать проект после успешного завершения установки, вам нужно сделать следующее:
- Перейти в нужную папку;
- Выполнить команду laravel new projectname.
Шаги для пользователей Windows:
- Скачайте Composer и установите его.
- После успешного завершения установки необходимо проверить, установлен ли он глобально. Откройте командную строку и введите команду «Composer», как показано ниже.

- Поместите путь к папке ~ / .composer / vendor / bin в переменную среды PATH
- Теперь выполните следующую команду –
composer global require “laravel/installer”
- Чтобы создать проект после установки, вам нужно сделать следующее:
- Перейти в нужную папку;
- Зажать клавишу Shift + щелкнуть правой кнопкой мыши и выбрать пункт «Открыть командную строку здесь»;
- Выполнить команду laravel new projectname/
В нашем примере выполняем:
laravel new todoРуководство по созданию простого CRUD-приложения для составления списка дел на Laravel
Лучший способ изучить программирование – практиковаться. Поэтому здесь мы будем изучать основы Laravel, разрабатывая простое веб-приложение, которое будет выполнять перечисленные ниже функции. В рамках этого руководства по Laravel:
- Вы сможете зарегистрироваться и войти в веб-приложение;
- Вы cможете добавлять задачи в свой список дел;
- Вы cможете редактировать или удалять эти задачи;
- Ваш список виден только вам, поэтому он использует аутентификацию через электронную почту и пароль.
Изучение структуры папок
Laravel - приложения следуют шаблону проектирования архитектуры MVC (Model-View-Controller).

- Модели (Models) представляют сущности в базе данных, помогают запрашивать базу данных и возвращать данные.
- Представления (View) – это страницы, которые будут отображаться при доступе к приложению. Элементы представлений используются для пользовательского интерфейса приложения.
- Контроллеры (Controllers) обрабатывают запросы пользователей, получают необходимые данные от моделей и передают их представлениям. Контроллеры действуют как посредники между компонентами модели и представления для обработки бизнес-логики, а также входящего запроса.
После того как вы установили Composer и создали свое первое веб-приложение на основе Laravel, вы могли заметить папку приложения с разными файлами и папками внутри. Я знаю, если вы новичок, у вас может возникнуть много вопросов о том, для чего нужны эти папки и т. д. и т. п.
Давайте разберём некоторые из них
app
Console
Exceptions
Http
Models
Providers
bootstrap
config
database
migrations
seeds
public
resources
css
js
lang
views
routes
storage
app
framework
logs
tests
vendor
- App: эта папка является ядром приложения и содержит основной код.
- Console: эта папка содержит все пользовательские команды Artisan, созданные с помощью make: command
- Exceptions: эта папка содержит обработчик исключений приложения. Это хорошее место для добавления пользовательских классов исключений, чтобы обработать различные исключения, создаваемые вашим приложением.
- Http: этот каталог содержит все ваши контроллеры, промежуточное программное обеспечение и запросы.
- Models: это новая папка, добавленная в версии Laravel 8 для хранения файлов моделей. Раньше модели хранились в папке App, но теперь их можно хранить и в папках App / Models.
- Providers: эта папка содержит всех поставщиков услуг для вашего приложения. Вы можете узнать больше о поставщиках услуг здесь.
- Bootstrap: эта папка содержит загрузочную программу фреймворка и файлы конфигурации. Она также содержит папку с файлами кеша, сгенерированными фреймворком.
- Config: эта папка содержит все файлы конфигурации вашего приложения.
- Database: эта папка содержит все миграции и начальные данные базы данных. Вы также можете хранить здесь файлы базы данных SQLite.
- Public: эта папка содержит такие ресурсы, как изображения, JavaScript и CSS-файлы.
- Resources: эта папка содержит все файлы представления, а также файлы CSS, LESS и SASS. Здесь также находится папка lang для хранения языковых файлов.
- Routes: эта папка содержит все маршруты приложения, а файл php получает все запросы к вашему приложению, и здесь вы можете перенаправить запросы на соответствующие методы контроллера.
- Storage: эта папка содержит все шаблоны Blade, файлы сеансов, файлы кеша и другие.
- Tests: эта папка содержит все тестовые файлы.
- Vendor: эта папка содержит все Composer-зависимости.
Пошаговое создание вашего первого приложения на Laravel
Создайте ваш проект
Если вы не создали свой проект в разделе установки, создайте его сейчас, выполнив следующую команду:
laravel new todoНастройте базу данных
Для нашего приложения нам понадобится база данных, поэтому лучше всего создать её в первую очередь. Laravel поддерживает четыре СУБД:
- MySQL
- Postgres
- SQLite
- SQL Server
В этом примере мы будем пользоваться SQLite, так как её проще настроить и использовать. И вам не придется ничего устанавливать – нужно будет всего лишь создать один пустой файл. Другие СУБД должны быть установлены в вашей системе, только потом их можно настраивать соответствующим образом. Laravel позволяет файлу config/database.phpнастраивать базу данных, но лучше не хранить в нем учетные данные. Вместо этого вы можете использовать файл .env, в котором можно хранить различные типы учетных и других данных.
В корневой папке Laravel по умолчанию находится файл .env.
В этом файле вы найдете код, похожий на следующий:
• DB_CONNECTION=mysql
•
• DB_HOST=127.0.0.1
•
• DB_PORT=3306
•
• DB_DATABASE=homestead
•
• DB_USERNAME=homestead
•
• DB_PASSWORD=secret
Замените все шесть строк, приведенные выше на одну строку, указанную ниже, то есть измените значение db_connection на sqlite и удалите остальные строки db, как здесь:
DB_CONNECTION=sqliteТеперь в папке базы данных создайте файл database.sqlite (это файл базы данных с расширением .sqlite)

Создайте аутентификацию
Laravel также предоставляет «скелет» для аутентификации. Это означает, что всё, связанное с аутентификацией: вход пользователя, регистрация, потеря пароля, двухфакторная аутентификация и т.д. будет создаваться заранее, если вам это необходимо. Это называется Laravel Jetstream.
Есть два способа добавить Jetstream в ваше новое Laravel-приложение. Если вы еще не создали проект, добавьте флажок
--jet
для новой команды Laravel:
laravel new todo --jetТак как выше мы уже создали проект, вы можете установить его с помощью установочного пакета. Сначала установите пакет Jetstream, используя следующую команду:
composer require laravel/jetstreamJetstream в Laravel поддерживает два стека ~ Liveware или Inerta. Поскольку мы хотим, чтобы этот проект был простым, давайте воспользуемся Livewire и установим Jetstream с помощью следующей команды:
php artisan jetstream:install livewire
Затем запустите «npm install && npm run dev», чтобы создать свои объекты.
На данном этапе мы закончили с настройкой и можем приступать непосредственно к созданию приложения.
Миграции
Первый шаг в разработке любого приложения – это создание базы данных. Laravel предлагает отличный способ разработки таблиц и схемы базы данных, а также даёт возможность легко переносить их в разные системы, которые называются «Миграции».
Миграции используются, чтобы создавать, изменять, а также делиться схемой базы данных приложения. Они используются с конструктором схем Laravel, чтобы упростить создание схемы базы данных. В создании миграций для вашей базы данных есть много преимуществ. Вы сможете легко перестроить структуру своей базы данных, используя файлы миграции в производственной и любой другой системе.
Ничего страшного, если это объяснение показалось вам непонятным. Поверьте, скоро у вас всё получится. Просто читайте дальше.
Выполните следующую команду:
php artisan make:migration create_tasks_table --create=tasksВы найдёте только что созданную миграцию в папке /database/migrations.

Теперь давайте добавим еще два столбца в таблицу задач, отредактировав только что созданный файл миграции.
...
public function up()
{
Schema::create('tasks', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('description');
$table->integer('user_id')->unsigned()->index();
$table->timestamps();
});
}
..В новом столбце с именем «description» будет храниться описание задачи, а в столбце с именем «user_id» будет храниться идентификатор пользователя, создавшего задачу. Мы добавили «-> unsigned () -> index ()» после user_if, потому что это внешний ключ из таблицы пользователей.
Теперь мы закончили с созданием схемы базы данных. Чтобы использовать эту схему для создания таблиц в базе данных, выполните следующую команду. Команда migrate обновит изменения, внесенные в схему, в базе данных.
php artisan migrateМодели -Eloquent
Eloquent – это ORM (система объектно-реляционного отображения) для Laravel, которая позволяет свободно применять active-record для работы с базой данных. Каждая таблица базы данных может иметь соответствующую модель Eloquent. Модель Eloquent представляет объекты базы данных. Она может использоваться для запроса данных, а также для вставки и обновления данных в таблице. Итак, давайте с помощью команды make: model создадим модель для нашей таблицы задач.
php artisan make:model TaskЭта команда создаст модель задачи в папке приложения, как показано ниже.

Отношение «один-ко-многим»
Отношения используются для соединения таблиц. Eloquent даёт возможность связать свои модели через отношения Eloquent. Отношение «один ко многим» означает, что одна модель владеет несколькими объемами другой модели. В нашем примере: у одного пользователя может быть много задач, поэтому между таблицей пользователей и таблицей задач существует связь «один ко многим». Отношения Eloquent очень легко определить и использовать. И преимущество заключается в том, что вам вообще не нужно запускать запросы. Eloquent свяжет модели между собой, поэтому вам придется использовать только функции.
Давайте отредактируем модель задачи и модель пользователя, чтобы создать отношения Eloquent.
Модель задачи (файл task.php находится в app/task.php):
...
use App\Models\User;
class Task extends Model
{
public function user()
{
return $this->belongsTo(User::class);
}
}
Модель пользователя (файл user.php находится в app/user.php):
...
use App\Models\Task;
class User extends Authenticatable
{
...
public function tasks()
{
return $this->hasMany(Task::class);
}
}
Команда Tinker в Artisan (необязательно)
В Laravel существует интерфейс командной строки, известный как Artisan. Artisan содержит различные команды, и среди них – Tinker, которую мы собираемся обсудить. Tinker позволяет вам взаимодействовать со всем вашим Laravel- приложением через окно консоли без необходимости доступа к веб-интерфейсу. Основным преимуществом Tinker является то, что вы можете тестировать отношения, отлаживать данные и получать доступ к Eloquent ORM, задачам, тестам, событиям и т. д. Поэтому мы также будем использовать команду Tinker в нашем руководстве по Laravel. Допустим, вы зарегистрировались в приложении и создали две задачи. Теперь вы проверяете эти задачи прямо в окне консоли, как показано ниже:
$ php artisan tinker
>App\User::first()->tasks;
Tinker напрямую обращается к базе данных, так что это отличный инструмент для тестирования функций, а также данных.
Контроллеры
Контроллеры используются для распределения трафика между представлениями и моделями. Они могут сгруппировать несколько логических схем обработки запросов в один класс. Таким образом, как правило, они получают весь запрос и, исходя из своей логики, перенаправляют или возвращают соответствующие данные. В нашем примере мы уже подходим к интерфейсу, поэтому мы должны создать контроллеры, через которые сможем обрабатывать запросы, поступающие в наше приложение. Выполните следующую команду, чтобы создать контроллер для задач:
php artisan make:controller TasksControllerТаким образом, будет создан TasksController, который вы сможете найти в папке app / Http / Controllers.
Маршрутизация
Маршрутизация означает принятие запроса и его перенаправление к соответствующей функции. Нашему приложению понадобится пять маршрутов, которые будут выполнять следующие действия:
- Авторизоваться;
- Зарегистрироваться;
- Показать список всех наших задач;
- Добавить новые задачи;
- Удалить существующие задачи.
Laravel Jetstream добавляет вход и регистрацию, поэтому теперь нам нужно позаботиться только о трех маршрутах.
Laravel предоставляет различные файлы маршрутов внутри папки / routes для разных случаев использования. Например, настройка маршрутизации для API будет находиться в файле «/routes/api.php», а настройка маршрутизации для нашего веб-приложения будет находиться в «/routes/web.php».
Теперь давайте отредактируем файл web.php. Ниже вы увидите отредактированную версию этого файла. Внесите соответствующие изменения:
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\TasksController;
/*
|--------------------------------------------------------------------------
| Веб-Маршруты
|--------------------------------------------------------------------------
|
| Здесь вы можете зарегистрировать веб-маршруты для своего приложения. Эти |маршруты загружает RouteServiceProvider внутри группы, которая содержит |группу промежуточного программного обеспечения «web». А теперь создайте что-|нибудь замечательное!
*/
Route::get('/', function () {
return view('welcome');
});
Route::middleware(['auth:sanctum', 'verified'])->group(function(){
Route::get('/dashboard',[TasksController::class, 'index'])->name('dashboard');
Route::get('/task',[TasksController::class, 'add']);
Route::post('/task',[TasksController::class, 'create']);
Route::get('/task/{task}', [TasksController::class, 'edit']);
Route::post('/task/{task}', [TasksController::class, 'update']);
});
Здесь мы внесли два изменения:
- Мы сгруппировали все маршруты, чтобы можно было применять auth: sanctum и проверенное промежуточное программное обеспечение ко всем маршрутам, тем самым давая доступ к этим страницам только проверенным пользователям, вошедшим в систему.
- Мы изменили маршрут для панели управления, который теперь будет передавать запрос в функцию index в TaskController. Также мы создали маршруты для других действий.
Представления – шаблоны Blade
Представления хранятся в папке resources/views. Представления - это интерфейс Laravel- приложения, который разделяет логику приложения и логику представления. Нам нужно создать и настроить следующие представления:
- blade.php (панель управления покажет список задач);
- blade.php (форма, которая позволит вам добавить новую задачу);
- blade.php (форма, которая позволит вам отредактировать любую задачу).
Laravel включает в себя довольно удобный макет, который содержит панель навигации под названием app.blade.php, расположенную в папке Views / layouts. С помощью механизма Blade в Laravel вы cможете разделить свои страницы на подсекции, а также использовать раздел панели навигации по умолчанию в новых представлениях.
Теперь в папке / resources / views создайте файлы add.blade.php и edit.blade.php с разметкой, приведенной ниже.
<x-app-layout>
<x-slot name="header">
<h2 class="font-semibold text-xl text-gray-800 leading-tight">
//здесь должен быть header вашей страницы
</h2>
</x-slot>
//здесь должно быть содержимое тэга body
</x-app-layout>
В файле dashboard.blade.php также замените весь код на тот, который приведен выше. Представления мы отредактируем позже, после определения функций нашего контроллера с помощью привязки модели к маршруту.
Привязка модели к маршруту (Route-Model Binding)
В Laravel есть множество удивительных функций, которые делают веб-разработку простой, чистой и менее трудоемкой. Одна из наиболее заметных функций подобного рода – привязка модели к маршруту (Route-Model Binding). Это механизм для внедрения экземпляра модели в ваши маршруты. Это значит, вы можете передавать объект модели в маршруты, а также в представления по маршрутам. Эта функция поможет вам легко получить значения объекта в представлении. Ничего страшного, если это объяснение кажется непонятным. Со временем вы все поймёте.
Теперь давайте добавим в TasksController.php функции, обрабатывающие указанные выше маршруты. Они должны выглядеть так, как показано ниже:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Task;
class TasksController extends Controller
{
public function index()
{
$tasks = auth()->user()->tasks();
return view('dashboard', compact('tasks'));
}
public function add()
{
return view('add');
}
public function create(Request $request)
{
$this->validate($request, [
'description' => 'required'
]);
$task = new Task();
$task->description = $request->description;
$task->user_id = auth()->user()->id;
$task->save();
return redirect('/dashboard');
}
public function edit(Task $task)
{
if (auth()->user()->id == $task->user_id)
{
return view('edit', compact('task'));
}
else {
return redirect('/dashboard');
}
}
public function update(Request $request, Task $task)
{
if(isset($_POST['delete'])) {
$task->delete();
return redirect('/dashboard');
}
else
{
$this->validate($request, [
'description' => 'required'
]);
$task->description = $request->description;
$task->save();
return redirect('/dashboard');
}
}
}
Как вы можете видеть, я передаю в функцию объект «Task $ task», а также объект «Request $ request» с помощью механизма привязки модели маршрута.
Примечание: Не забудьте добавить «use App \ Models \ Task;» иначе вы получите сообщение об ошибке «Класс не найден».
Редактируем представления
Теперь функции контроллера настроены и возвращают соответствующие представления с прикрепленными объектами модели. Итак, теперь нужно отредактировать наши представления, чтобы они, если нужно, показывали форму и необходимые данные, используя объекты модели, переданные по маршрутам.
Страница, отображающая все задачи
Откройте файл dashboard.blade.php и отредактируйте его следующим образом:
<x-app-layout>
<x-slot name="header">
<h2 class="font-semibold text-xl text-gray-800 leading-tight">
{{ __('Dashboard') }}
</h2>
</x-slot>
<div class="py-12">
<div class="max-w-7xl mx-auto sm:px-6 lg:px-8">
<div class="bg-white overflow-hidden shadow-xl sm:rounded-lg p-5">
<div class="flex">
<div class="flex-auto text-2xl mb-4">Tasks List</div>
<div class="flex-auto text-right mt-2">
<a href="/task" class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">Add new Task</a>
</div>
</div>
<table class="w-full text-md rounded mb-4">
<thead>
<tr class="border-b">
<th class="text-left p-3 px-5">Task</th>
<th class="text-left p-3 px-5">Actions</th>
<th></th>
</tr>
</thead>
<tbody>
@foreach(auth()->user()->tasks as $task)
<tr class="border-b hover:bg-orange-100">
<td class="p-3 px-5">
{{$task->description}}
</td>
<td class="p-3 px-5">
<a href="/task/{{$task->id}}" name="edit" class="mr-3 text-sm bg-blue-500 hover:bg-blue-700 text-white py-1 px-2 rounded focus:outline-none focus:shadow-outline">Edit</a>
<form action="/task/{{$task->id}}" class="inline-block">
<button type="submit" name="delete" formmethod="POST" class="text-sm bg-red-500 hover:bg-red-700 text-white py-1 px-2 rounded focus:outline-none focus:shadow-outline">Delete</button>
{{ csrf_field() }}
</form>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
</x-app-layout>
Совет:
Механизм шаблонов Blade позволяет нам использовать PHP внутри HTML, не заключая его в «<? Php?>».
Страница, добавляющая новую задачу
Откройте файл add.blade.php и отредактируйте его следующим образом:
<x-app-layout>
<x-slot name="header">
<h2 class="font-semibold text-xl text-gray-800 leading-tight">
{{ __('Add Task') }}
</h2>
</x-slot>
<div class="py-12">
<div class="max-w-7xl mx-auto sm:px-6 lg:px-8">
<div class="bg-white overflow-hidden shadow-xl sm:rounded-lg p-5">
<form method="POST" action="/task">
<div class="form-group">
<textarea name="description" class="bg-gray-100 rounded border border-gray-400 leading-normal resize-none w-full h-20 py-2 px-3 font-medium placeholder-gray-700 focus:outline-none focus:bg-white" placeholder='Enter your task'></textarea>
@if ($errors->has('description'))
<span class="text-danger">{{ $errors->first('description') }}</span>
@endif
</div>
<div class="form-group">
<button type="submit" class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">Add Task</button>
</div>
{{ csrf_field() }}
</form>
</div>
</div>
</div>
</x-app-layout>
Совет:
{{csrf_field ()}} используется для генерации токена csrf и вставки в форму. Этот токен используется для проверки того, что запрос в приложении исходит от авторизованного зарегистрированного пользователя. Это стандартная функция безопасности, которую предоставляет Laravel.
Страница, редактирующая задачу
Откройте файл edit.blade.php и отредактируйте его, как показано ниже:
<x-app-layout>
<x-slot name="header">
<h2 class="font-semibold text-xl text-gray-800 leading-tight">
{{ __('Edit Task') }}
</h2>
</x-slot>
<div class="py-12">
<div class="max-w-7xl mx-auto sm:px-6 lg:px-8">
<div class="bg-white overflow-hidden shadow-xl sm:rounded-lg p-5">
<form method="POST" action="/task/{{ $task->id }}">
<div class="form-group">
<textarea name="description" class="bg-gray-100 rounded border border-gray-400 leading-normal resize-none w-full h-20 py-2 px-3 font-medium placeholder-gray-700 focus:outline-none focus:bg-white">{{$task->description }}</textarea>
@if ($errors->has('description'))
<span class="text-danger">{{ $errors->first('description') }}</span>
@endif
</div>
<div class="form-group">
<button type="submit" name="update" class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">Update task</button>
</div>
{{ csrf_field() }}
</form>
</div>
</div>
</div>
</x-app-layout>
После редактирования этого представления мы собираем все части воедино, так что теперь сможем протестировать своё приложение.
Сначала зарегистрируйтесь, затем войдите в систему, а потом проверьте, можете ли вы создать задачу, отредактировать задачу и удалить задачу.
Запускаем проект на Localhost
Чтобы запустить проект, запустите в окне терминала команду php artisan serve. Убедитесь, что вы находитесь в корне вашего приложения в терминале.
Обязательно прочтите инструкции, прежде чем копировать код с github.
Что делать с этим проектом дальше:
Существует множество вещей, которые можно добавить в этот проект, например:
- Проверка формы:
- Разрешение пользователю создавать несколько списков с несколькими задачами;
- Профиль пользователя;
- И многое другое.
Заключение
В этом длинном руководстве по Laravel мы узнали, как установить Laravel, настроить базу данных, а также такие основные вещи, как маршруты, модели, представления и контроллеры, а также создали ваше первое приложение на Laravel - приложение для составления списка задач.
Надеюсь, что это руководство по Laravel помогло вам понять основы Laravel, а также мотивировало вас учиться дальше. Пожалуйста, поделитесь своим мнением о Laravel и об этом руководстве. А также вы можете делиться в комментариях к этой статье вашими вопросами и проблемами. Будем рады вам помочь. Спасибо.
Комментарии
Разобрался, можно вместо /task все что угодно написать, но когда я пробовал так сделать не работало, потому что /task был в кеше. Почистил кеш: php artisan route:clear и теперь работает, и все понятно стало.
в файле add.blade.php есть ссылка на /task
<a href="/task" class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">Add new Task</a>
и в файле web.php есть маршруты с этим /task.
Откуда он берет этот путь, он по нему заходит, все работает, но как?
Модель называется Task.php, навряд ли от модели.
Либо я что-то пропустил, либо урок неполный.
Как это теперь посмотреть? После запуска сервера показывается заглавная страница laravel. Очень странно.
вы должны ввести в браузере не просто 127.0.0.1 (или какой-там у вас будет адрес), а 127.0.0.1/dashboard
Урок что надо) И главное добавлены ссылки на не совсем очевидные вещи)Спасибо большое)
Толковый урок. Спасибо!