Laravel Resource Routing Guide — Step-by-Step & Transcript

11 | Laravel Controller Resource Methods Step-by-Step (CRUD Example)

0h 29m video Published May 8, 2025 Transcribed Sep 10, 2026 Dani Krossing Dani Krossing
12.9K views Recent velocity 1.1 views/hour View full performance history →
AI Trust Score 70/100
⚠️ Average / Some Fluff

"Delivers a practical, step-by-step CRUD routing guide, though some parts are a bit repetitive."

AI Summary

This video is part of a Laravel course that teaches how to set up routes for a Post controller, covering basic CRUD operations. The instructor demonstrates how to use Laravel's resource routes to automatically generate and connect controller methods, enabling a fully functional data management system.

[00:01]
Objective: Routing for Controller Methods

The video aims to configure routes for all controller methods discussed in previous episodes, bringing models, controllers, and databases together into a working system.

[01:54]
Locating the Routes File

The 'routes' folder contains a 'web.php' file where default welcome page routes are set. This file is used to add resource routes for the Post system.

[03:15]
Adding a Resource Route

Two steps are needed: 1) Add a reference to the PostController using the `Route::resource` method, and 2) This single line of code creates all the necessary routes for the controller's methods automatically, without manual creation.

[05:50]
Understanding the Index Method

The index method in the PostController is invoked when visiting the /posts URL. It needs to return a view to display posts. The code `return view('posts.index', compact('posts'));` loads the view and passes data from the database via the `all()` model method.

[09:29]
The Purpose of the All Method

The `all` method is part of the base Model class, inherited by Post, and it retrieves all records from the database table. The `compact` function passes this array of data to the view for display.

[13:43]
Setting Up the Create Method

The create method returns a view (posts/create) for a form to create new posts. The store method validates and saves data, using the Post `create` method, and then redirects back to the index page.

[17:43]
Creating the Edit Method

The edit method uses `Post::findOrFail($id)` to retrieve a specific post by ID and passes it to an 'edit' view, allowing users to modify existing content.

[20:12]
Implementing the Update Method

The update method finds the post, validates new data, uses `$post->update()` to save changes, and redirects to the index with a success message.

[23:31]
Adding the Destroy Method

The destroy method uses the `findOrFail` and `delete` methods to remove a post by ID, then redirects to the index with a deletion success message.

[24:58]
Connecting Views and Next Steps

To provide navigation, views need to link to controller methods. The next episode will focus on creating view files to access the different controller methods, enabling a fully functional interface.

[26:23]
Creating Custom Methods

Besides resource methods, developers can create custom public methods in the controller, combining existing commands to handle specific business logic (e.g., updating one post and deleting another).

💡 Key Takeaways

🔧

One-Line Route Creation

Using Route::resource to instantly generate all CRUD routes saves developers significant time and avoids manual route definitions.

03:45
💡

Understanding Data Flow

Explaining that model methods like 'all' are part of the base Model class clarifies how Eloquent methods are accessed and used.

09:29
📊

CRUD Operations Simplified

Shows the concise Laravel syntax for retrieving, updating, and deleting records, highlighting the framework's ease of use.

20:12
⚖️

Customization is Encouraged

Encourages developers to build custom methods by combining standard model commands, extending flexibility beyond default resource actions.

26:23
💡

Route to View Integration

Maps controller methods to user-visible pages and forms, showing the complete lifecycle of a CRUD operation.

28:06

[00:01] разработку нашего приложения Larwell. Сегодня мы научимся настраивать маршруты для всех различных методов нашего контроллера, которые мы рассматривали в двух предыдущих эпизодах этого курса. Итак, мы научились

[00:15] настраивать модель и контроллер. А в последнем видео вы узнали, как настроить базу данных, по крайней мере, таблицу базы данных для нашей системы учета. Сегодня мы научимся прокладывать маршруты, которые

[00:27] действительно помогут воплотить всё это в жизнь, потому что сейчас у нас из которых пока не соединён с остальными . Так что у нас есть реально . Так что у нас есть реально работающая система. Итак, вкратце, у нас есть

[00:42] файл модели в папке models, который называется post. В прошлом эпизоде мы внесли изменения в этот конкретный файл, чтобы убедиться, что мы можем отправлять определенную информацию в нашу таблицу в

[00:57] базе данных и не получать сообщение об ошибке. У нас также был PHP-файл postcontroller.php, если заглянуть внутрь HTTP, и именно о нём мы сегодня и поговорим, потому что в этом

[01:11] сегодня и поговорим, потому что в этом контроллере находятся все методы для работы с этой конкретной системой отправки сообщений. Таким образом, всякий раз, когда мы хотим создать новую запись, удалить запись, обновить запись или сделать что-то еще, все это будет происходить

[01:23] внутри этого конкретного класса. На данный момент кроме методов, которые мы будем использовать. Эти методы были автоматически созданы для нас путем добавления ресурса R um после команды

[01:40] при создании модели и контроллера два эпизода назад. Итак, у нас есть множество внутри них на самом деле ничего не происходит. И сегодня мы тоже этим займемся . Итак, что мы сейчас сделаем, это

[01:54] перейдем в папку routes, которая находится в каталоге нашего веб-сайта. Итак, если мы заглянем внутрь раздела «Маршруты», который я указал внизу, то увидим файл

[02:06] web.php, с которым мы довольно много работали в первых нескольких эпизодах этого курса. Сейчас, поскольку это только что установленный проект Larwell, у меня просто стандартное приветствие, знаете, оно, по сути, просто

[02:21] возвращает главную страницу при посещении, ну, вы знаете, название моего веб-сайта без каких-либо косых черт или чего-либо еще после него. Таким образом, возвращается только главная страница. Итак, чтобы запустить все различные маршруты,

[02:35] запустить все различные маршруты, связанные с моей системой POST, вы, возможно, подумаете: «Хорошо, нам нужно создать маршрут, например, нам нужно создать маршрут, например, маршрут POST, для первого

[02:47] что-то подобное». Но на самом деле автоматического подтягивания всех этих различных методов из нашего

[03:00] класса контроллера. Итак, сделать это можно, прежде всего, указав, что мы хотим использовать определенный параметр, например, здесь, чуть ниже первого использования, в качестве параметра по умолчанию при новой установке. Я могу вставить сюда этот

[03:15] конкретный путь, который указывает, что вы хотите использовать наш указывает, что вы хотите использовать наш файл postcontroller, который находится в файл, о котором мы только что говорили, и в котором были созданы все эти ресурсы

[03:29] нам нужно добавить в наш файл маршрутов, который называется web.php. Второе, что нам нужно включить, это фактически создать все различные маршруты для этого конкретного файла, который мы только что добавили в наш файл маршрутов.

[03:45] Эм, и мы делаем это не путем ручного создания маршрутов один за другим, как показано ниже, а просто для включения этой одной строки кода, к которой у нас есть доступ, поскольку мы включаем этот конкретный файл сюда.

[03:59] Таким образом, мы можем использовать его, и по сути, мы просто говорим, что хотим создать маршрут, и этот маршрут фактически основан на ресурсе, что что понимает Laravel. Хорошо. Таким образом,

[04:11] мы используем встроенную функцию ресурсов, что, по сути, означает, что она создаст маршрут для всех различных методов, которые у нас есть внутри этого конкретного контроллера POST. По сути, эта одна строка кода создает целый

[04:28] набор маршрутов, которые мы можем использовать для этого конкретного приложения. Нам не нужно ничего создавать вручную, и это довольно здорово. По сути, мы говорим, что если я перейду по этой конкретной ссылке в

[04:42] URL-адресе (в данном случае, это перенаправление /posts), то мы будем использовать все доступные нам маршруты внутри класса postcontroller, то есть все различные методы, которые мы только что создали здесь,

[04:56] являющиеся частью системы ресурсов, автоматически созданной для автоматически созданной для нас Larowell. Итак, теперь, когда я добавил этот маршрут в свой файл web.php, я могу перейти

[05:09] на свой сайт и в URL-адресе указать косую черту "posts". И если я это сделаю, страница 404 не будет отображаться как "страница не найдена", потому что у нас теперь есть

[05:22] маршрут, созданный для этой конкретной страницы. Теперь он будет возвращать, так сказать, будет возвращать, так сказать,

[05:37] системы публикации, индексную страницу для маршрутов post. Что это за страница? Как нам узнать, какая это страница? Итак, если я вернусь внутрь своего контроллера постобработки, вы заметите, что контроллера постобработки, вы заметите, что первый метод внутри контроллера постобработки

[05:50] называется index. Этот метод вызывается каждый раз, когда вы загружаете данный URL-адрес на свой веб-сайт. Итак, просто название вашего сайта/публикаций. Затем загружается именно этот метод. В данный момент функция

[06:06] не возвращает никаких страниц, то есть по этому на нашем веб-сайте ничего не просматривается, и это именно то, что нам нужно создать в

[06:19] этом конкретном методе. Поэтому нам нужно указать, какую страницу следует вернуть при обращении к этому URL-адресу. А сделать это можно всего двумя простыми строками кода, которые выглядят вот так . Итак, что же именно делает этот код

[06:33] ? Потому что мне нужно объяснить это как можно проще, чтобы вопросов. Мы занимаемся двумя разными вещами. объяснения я мог бы просто удалить это здесь. В общем, мы возвращаем представление под названием

[06:52] postindex. В Larowell это, по сути, означает, что у нас есть по сути, означает, что у нас есть папка posts, и внутри этой папки, используя точку, мы имеем файл

[07:05] index.blade.php — вот что там написано. Так что, если бы мне действительно пришлось создать его нет. Э-э, если бы я спустился вниз, откуда открывается вид. Итак, если я зайду в раздел «Ресурсы», а затем в «Виды», вы увидите, что сейчас у нас нет

[07:20] папки «Запись». И это довольно хорошая идея — организовать наш проект в отдельные папки, чтобы не хранить все PHP-файлы в одном месте. Итак, правой кнопкой мыши и выберу создание новой папки. Этот раздел будет

[07:35] называться "Посты", потому что я так его здесь называл. А внутри этой папки я создам новый файл с именем

[07:48] мы ссылаемся в данном конкретном представлении. Итак, мы перейдём в папку с постами и выберем индексный файл внутри этой папки. Что же это за индексный файл? Итак, это будет главная страница для

[08:02] системы размещения постов, когда мы её создадим. Люди смогут заходить на разные страницы вашего сайта и видеть все созданные таким образом посты. В

[08:14] добавим сюда вторую часть, которую я удалил. По сути, в первой строке кода мы получаем все данные из нашей базы данных и вставляем их в эту переменную, которая преобразует их в

[08:28] массив, поскольку в нашей таблице может быть много разных записей. Таким образом, если в переменной содержится несколько элементов данных, то она становится массивом, верно? По сути, это массив, содержащий все записи

[08:41] из базы данных. Сейчас я объясню эту строчку. Но имейте в виду, что с этим массивом я затем перехожу внутрь своего представления, где возвращаю само представление, и передаю второй параметр, который, по сути, указывает, хочу ли я

[08:58] передать какие-либо данные с этим представлением. Таким образом, при загрузке только что созданного объекта post.index я также передаю массив. Вот что значит "компактный". В это представление мы передаем массив под названием post.

[09:14] Здесь у нас размещены только посты. По сути, мы получаем все данные из базы данных или все записи из нашей таблицы базы данных и передаем их на эту конкретную страницу, чтобы мы могли просмотреть их на этой странице. Это понятно?

[09:29] Думаю, да. Итак, этот код здесь, в скобках, требует немного больше пояснений. Эм, значит, пост — это наша

[09:45] постмодель, верно? Потому что мы и так дали на это ссылку выше. А внутри модели post указано, что мы используем статический метод под названием all. Теперь, если я зайду внутрь нашей модели постобработки, которую мы создали два эпизода назад,

[10:01] вы заметите, что у нас на самом деле нет метода all. Подобного не существует . А потом я говорю, что у нас есть один, который называется "все, ну, вот так", и такого "этого" не существует в этом конкретном классе. Теперь вы видите, что на

[10:16] самом деле появляется сообщение об ошибке, потому что этот класс действительно существует, но вы его не видите, ведь помните, что эта модель поста наследует другой класс, который называется model. Как я объяснил в предыдущем эпизоде, эта модель — это своего рода

[10:34] ядро ​​или самый дальний класс моделей, который у нас есть при использовании Larowell. И этот конкретный класс модели, который мы используем и расширяем, на самом деле имеет множество встроенных методов, включая метод `

[10:49] all`, метод `find`, а также методы `create`, `update` и `delete`. Это означает, что мы можем использовать этот базовый класс модели для выполнения основных функций или, так сказать, базовых команд с нашей базой данных. В этом случае функция

[11:05] извлекает все записи из определенной таблицы. Если я воспользуюсь методом find, то смогу передать параметр в этот метод и найти конкретную запись в таблице. Например, если мне нужно найти

[11:20] конкретного пользователя и заблокировать ему доступ к нашему сайту, мы можем это сделать. У нас также есть функция создания записи, которая создает новую запись в нашей базе данных. Таким образом, у нас есть несколько различных методов, встроенных в класс модели, которые мы

[11:34] можем использовать. А чтобы использовать эти методы внутри класса модели, нам нужно сделать это с помощью нашего класса POST, расположенного ниже, потому что именно его мы можем использовать в нашем проекте. Это понятно? Это как если бы мы использовали

[11:49] метод, который мы изучали пару уроков назад, и который, так сказать, мы не видим. Итак , давайте вернемся внутрь нашего контроллера post. По сути, у нас есть модель post, которая имеет статический метод, получающий данные из

[12:03] класса models, который находится на шаг дальше, и затем извлекает все данные из нашей конкретной таблицы базы данных под названием posts. Таким образом, эти

[12:15] данные передаются в наше представление, которое затем мы можем увидеть на нашем веб-сайте. Итак, если мы обновим страницу, вы увидите, что у меня возникает ошибка, но это страница еще не была создана. Но теперь оно у нас есть . Итак, когда я обновляю страницу, вы

[12:31] видите, что она по-прежнему пустая, но на этот раз отображается страница с нашего сайта. Итак, если бы я вернулся и открыл свой файл index.blade.php и просто сказал, что хочу

[12:44] файл index.blade.php и просто сказал, что хочу создать стандартную HTML5-настройку. Эм, перечислить все сообщения. Если я сохраню это и вернусь на свой сайт, вы увидите, что теперь

[12:57] мы получаем все записи, потому что нам возвращается именно эта страница. Надеюсь, это понятно, потому что это своего рода паутина информации, где один файл ведет к другому. Эм, но внутри контроллера постов, по сути,

[13:13] все сводится к тому, что у нас есть метод index, который возвращает главную страницу для тех, кто посещает посты, в адресе которых присутствует косая черта . В данном случае мы указываем ему вернуть главную страницу, расположенную внутри папки post,

[13:29] Потому что это все файлы, которые мы можем увидеть на самом сайте. Итак, с учетом этого у нас есть еще несколько вещей, которые мы можем создать, потому что нам также нужно иметь возможность создавать новые, как это называется, новые публикации на

[13:43] веб-сайте и так далее. Итак, что мы можем сделать здесь? Внутри метода `create`, который находится ниже, я могу вставить вот эту строку кода. По сути, это просто вернет представление с именем create. А на данный момент, э-э, у нас его ещё нет в наличии

[13:58] . Как видите, программа показывает, что файл create.blade.php находится в папке с нашими постами . Итак, если мы зайдем в папку с моими сообщениями и создадим новый

[14:11] в папку с моими сообщениями и создадим новый файл, я могу написать есть этот файл, на который мы ссылаемся. Так что же именно создаётся? По сути,

[14:24] мы просто говорим, что страница, которую мы хотим использовать для создания новой записи, будет находиться внутри posts/ create. Так что, если мы зайдем на мой сайт и скажем, что хотим

[14:40] перейти в раздел posts/ create, то он вернет нам эту страницу. И здесь вы, знаете, создаёте заголовок, текст, например, для этого конкретного

[14:52] сообщения, а затем нажимаете кнопку «Загрузить» или что-то подобное, знаете, в базу данных. Итак, это, по сути, та страница, которую мы только что создали . У нас здесь тоже есть один магазин. А этот вариант предназначен для случаев, когда мы хотим отправить эти данные в

[15:07] нашу базу данных и внести их туда . И об этом мы уже говорили в одном из предыдущих эпизодов. Если бы я вставил сюда код, я бы просто перенёс его на новые строки.

[15:20] Итак, по сути, эта форма вводится и указывает, что при отправке формы для загрузки новой записи в нашу базу данных, в этой форме будет содержаться несколько различных данных . Теперь нам

[15:35] нужно заполнить только два поля: заголовок и текст, которые мы, как мы и указали в базе данных, заполним сами. Помните, что

[15:49] . Так что нам там ничего делать не нужно . Но нам нужно заполнить две колонки. В данном случае они называются «Заголовок» и «Текст». По сути, я просто хочу сказать, что эти поля должны быть заполнены,

[16:04] отправить. Вам нужно их заполнить. Как видите, я добавил заполнить. Как видите, я добавил здесь, так сказать, обязательное утверждение. Эм, по сути, это просто проверка данных формы, которую

[16:18] отправляет пользователь, и указание на необходимость её заполнения. Эм, а затем программа снова указывает на необходимость вызова модели POST, которая у нас здесь находится. А затем я хочу запустить статический метод. А затем я хочу передать

[16:34] фрагмент данных. И опять же, этот метод находится не внутри нашей модели post, а внутри класса models, который есть в нашей установке Laravel.

[16:46] Хорошо, повторюсь, вы этого не видите, но я уверяю вас, оно там есть. Итак, если вы вернетесь сюда, то увидите, что мы просто запускаем этот конкретный метод модели, затем хотим просто вернуть пользователя на определенную страницу с

[17:02] сообщением об успешном завершении, если все работает. Итак, если этот маршрут успешно создан в нашей базе данных, то перенаправьте пользователя на новый маршрут, который называется post.index, и этот маршрут мы уже создали. По сути, это

[17:15] вернет пользователя на страницу, содержащую все записи, а именно в файл index.blade.php, расположенный в папке post. Хорошо. А затем мы просто вместе с этой конкретной страницей, которая в данном случае просто сообщает об

[17:30] мы ничего не будем делать, оставим это место пустым. Но что касается редактирования, мне бы очень хотелось, чтобы мы могли редактировать наши публикации уже после того, как они были созданы и внесены в

[17:43] нашу базу данных, потому что это можно делать на Facebook. Если вы написали допустили опечатку, возможно, вам стоит его исправить, верно? Итак, что я собираюсь сделать внутри нашего редактора, так это передать две строки кода. По сути,

[17:57] найти конкретную запись в нашей базе данных и отредактировать её . Таким образом, мы можем указать, что не хотим передавать этот код ресурса по умолчанию, а вместо этого хотим передать идентификатор для

[18:13] конкретного поста. Таким образом, при использовании этого метода мы передаем идентификатор, а затем используем этот идентификатор для поиска нужной нам записи в базе данных. В данном случае мы создаём переменную и

[18:26] присваиваем ей значение, полученное в результате выполнения статического метода, который называется find или fail. Это еще один метод, встроенный в класс моделей. Поэтому нам не нужно создавать это самостоятельно. Этот существует параллельно со всеми методами, и тот, который у

[18:43] нас был здесь, называется « Где он?». Хорошо. Ну, мы не стали использовать другой. Итак, это, по сути, второй фильм, который вы сможете увидеть. Итак, конкретную запись в таблице записей с определенным ID, верно?

[19:00] Затем, если мы ее найдем, мы вернем определенное представление и передадим эти данные в это представление. Эта строка кода, которую мы уже видели раньше, — это тот же самый код, что и в методе index, верно? Мы возвращаем

[19:15] представление, а затем передаем массив данных в это конкретное представление. В данном случае мы находим запись со всеми ее данными, такими как, например, заголовок, текст, дата создания, ID и все остальное, и передаем это в

[19:30] наш файл post.edit. Сейчас у нас этого файла ещё нет. Итак, нам нужно перейти в папку views, которая находится внутри папки post, щелкнуть правой кнопкой мыши по файлу «Создать новый файл» и указать, что мы хотим назвать его «

[19:43] Редактировать Blade PHP». Обещаю, все эти страницы ниже станут понятны позже. Вот, например, вы сейчас думаете: "А когда же мы сможем использовать эти страницы?" Ну, сейчас всё станет понятно

[19:57] создадим эти методы, а потом я покажу вам, как они все связаны между собой. Итак, следующее, что мы хотим сделать, это убедиться, что если мы найдем конкретную запись, с которой хотим что-то сделать, то мы сможем отредактировать

[20:12] ее и обновить информацию в базе данных. Мы сейчас воспользуемся методом обновления, который есть в наших ресурсах. Этот способ чем-то похож на то, что мы делали раньше, вот здесь,

[20:28] где мы создаём новый пост. Итак, если мы прокрутим вниз и вставим приведенный здесь код... Итак, мы хотим проверить данные, которые мы отредактировали в форме на веб-сайте, потому что, помните, вам

[20:41] а затем нажать кнопку «Обновить». По сути, вы отправляете в нашу базу данных новые данные, которыми она должна обновить таблицу. Верно? В общем, именно это мы здесь и проверяем. И еще раз хотим подчеркнуть, что это

[20:56] обязательное требование, и вы не должны оставлять ни одно из этих полей пустым. Далее мы, по сути, говорим, что хотим создать переменную, которая будет равна данным, переменную, которая будет равна данным, найденным на основе этого идентификатора, что

[21:09] мы уже делали ранее. Если вы перейдете к предыдущему пункту, который называется "Редактировать". По сути, это способ найти конкретную публикацию. И как только мы найдем сообщение, мы сможем зайти и сказать, что хотим его отредактировать или обновить, добавив

[21:23] новую информацию. По сути, мы берем эту переменную и хотим указать, что хотим указать на метод с именем update. Внутри этого обновления мы просто передаем проверенные данные, которыми хотим его обновить

[21:38] . Итак, что же это за обновление? Что ж, это опять же находится не внутри модели поста, а внутри класса моделей, который мы не можем увидеть. Что ж, мы сможем это увидеть, если

[21:50] покопаемся, но на данный момент мы этот файл не создали. Это же просто стандартный файл, входящий в проект Larowell, верно? И точно так же, как у проект Larowell, верно? И точно так же, как у нас есть доступ к методам `all`, `

[22:02] create` и `find`, у нас также есть доступ к одному методу, который называется `update` и который обновляет что-то в базе данных. Опять же, многое здесь может показаться немного запутанным, потому что

[22:16] вы можете подумать, что всё происходит автоматически, но на код, который обновляет базу данных. И в этом прелесть Larowell — она многое делает автоматически. Вам просто нужно знать,

[22:30] что если вы найдете в базе данных определенную запись с этой конкретной строкой кода, то вы сможете обновить все данные в этой записи, используя следующую строку кода. Верно? Таким образом, нам нужно

[22:45] вернуться на определенную страницу, например, перенаправить пользователя на конкретный URL- адрес, который в данном случае будет главной страницей для этих конкретных записей, то есть нашей индексной страницей, и сделать это с

[23:01] сообщением об успешном обновлении . Теперь же появляется сообщение об ошибке, потому что в нём говорится: « Что это за ID, который вы пытаетесь передать в функцию find или fail?» Это и есть тот идентификатор, который нам нужно передать сюда, вверху

[23:16] . Поэтому мы не пытаемся передать текст по умолчанию, который ресурс для нас создал. Эм, но мы просто пытаемся передать удостоверение личности. Это исправит сообщение об ошибке. И последнее, чего нам хочется, это

[23:31] запускать метод `destroy`, который, по сути, просто удалит наш пост, если мы этого захотим. Итак, я сейчас вставлю сюда немного кода. И снова, чтобы удалить пост, нам сначала нужно найти пост, который мы хотим

[23:46] удалить. И мы уже несколько раз это делали. Таким образом, строка кода, которая выполняет то, что мы уже несколько раз делали, по сути, представляет собой метод `find` или ` fail`, встроенный в базовый класс модели, на который наследуется наш класс `post`

[24:00] . Итак, найдите ошибку, которая указывает на конкретный пост с конкретным ID, и в данный момент она выдает нам сообщение об ошибке, потому что именно это нам и нужно передать сюда, ведь помните, что данные необходимо передать в

[24:14] внутри этого метода. А получив его, мы просто запускаем получив его, мы просто запускаем метод удаления, который, опять же, встроен в Larowl. Таким образом, мы просто вызываем метод удаления, и он удалит

[24:27] метод удаления, и он удалит запись об этом посте из нашей таблицы в базе данных. А затем мы делаем то, что делали уже много раз. По сути, мы просто перенаправляем пользователя на определенный маршрут, который называется post.index, — это

[24:41] главная страница публикации на нашем сайте, и отображаем сообщение об успешном удалении записи . Теперь у нас есть все необходимое внутри этого контроллера post, чтобы начать использовать эти маршруты в наших файлах представлений. Потому что

[24:58] сейчас вы, возможно, думаете: «Ну ладно, у нас есть страницы вот так, а если я вернусь сюда, то это будет моя страница с записями, где у нас есть просто текст под названием «Все записи», но здесь нет записей». Как

[25:13] мне попасть на страницу создания новой записи и как удалить запись? Как будто нет кнопок, чтобы это сделать. И это то, что мы сделаем в следующем видео, потому что мы начнем создавать файлы представлений,

[25:26] чтобы получить доступ ко всем этим различным контроллерам или методам контроллеров, которые мы создали в этом эпизоде. Итак, вкратце, потому что мне кажется, что этот эпизод получился довольно длинным. По сути, внутри

[25:40] класса контроллера находится набор методов, которые используются для отображения пользователю главной страницы публикации, которая находится внутри метода index . Затем у нас есть множество методов, позволяющих направить пользователя на

[25:54] направить пользователя на страницу создания новой записи, или фактически создать новую запись в базе данных, или, например, найти конкретную запись, с которой мы хотим что-то сделать в базе данных, или фактически обновить запись в базе данных,

[26:09] или удалить запись в вашей базе данных. Вы примерно понимаете, к чему я клоню , верно? По сути, мы просто выполняем все необходимые действия с конкретным сообщением, используя этот файл . И я просто хочу упомянуть, потому что

[26:23] понимать: это всего лишь методы ресурсов по умолчанию, которые мы создали при запуске ресурса, как, например, при создании файлов модели и контроллера. При желании вы можете перейти ниже и создать

[26:41] собственный публичный метод, например, с таким названием, как " uh whoopsydoo", просто чтобы было что-то, а затем начать создавать свой собственный код. Итак, если вы хотите сделать что-то очень конкретное, например, найти

[26:56] очень конкретное, например, найти пост, обновить его, а затем удалить другой пост. Тогда вам просто нужно создать этот пользовательский метод, а затем начать писать код, как мы делали раньше. Итак, если вы хотите найти

[27:09] Это значит, что вам нужно передать что-то в сам метод. Что ж, мы передадим этот ID, чтобы действительно найти сообщение. А затем вам вы хотите что-то обновить. Ну, у нас и здесь этот код есть. Итак, прежде всего

[27:24] , вам нужно взять новый текст, который мы передали, и указать, что вы хотите обновить тот конкретный пост, который мы только что Ну, мы ещё и этот пост удалим". Итак, у нас есть этот код,

[27:38] и мы будем использовать именно его. Так что вы можете собрать это, как будто это конструктор Lego . Знаете, у вас есть множество команд, которые вы можете использовать, и вы просто применяете их внутри своих пользовательских методов, расположенных здесь.

[27:52] Просто хочу сказать, что вы можете экспериментировать с этим, вам не нужно бояться выходить за рамки этих заранее созданных методов, используя команду `resource`. Вы также можете заниматься своими делами, если захотите.

[28:06] В следующем видео мы поговорим о том, как создавать и использовать эти методы контроллера, а также как создавать страницы, на которых мы будем их применять . Итак, например, на нашей главной странице будет

[28:20] кнопка «Создать новую запись», которая перенаправит пользователя на новую страницу, где мы сможем создать новую запись. Кстати, мы создали её здесь, в файле create.blade.php. И как мы это сделаем?

[28:33] Что ж, мы просто вызываем наш метод create внутри контроллера post. Таким образом, когда я нажимаю кнопку «Создать новую запись», мы просто запускаем этот метод, который перенаправляет пользователя на нашу страницу создания записи. А когда мы переходим на

[28:46] страницу создания, мы заполняем, например, заголовок и сообщение для конкретного поста, это форма, которая находится внутри соответствующего файла представления. Затем мы хотим передать это другому конкретному методу, который у нас

[29:00] метод сохранения. И это позволит создать запись в базе данных и перенаправить пользователя на главную страницу. Надеюсь, это понятно. Это может быть немного сложно для новичков, особенно для

[29:15] новичков. И я надеюсь, что просто следуя этим урокам. Я знаю, у вас, наверное, сейчас много вопросов, но надеюсь, что, просто попробовав это и пройдя следующий урок, вы всё поймёте,

[29:29] Итак, надеюсь, вам понравилось, и до встречи в следующий раз! and I'll see you guys next time. [Music]

More from Dani Krossing

View all

⚡ Saved you 0h 29m reading this? Transcribe any YouTube video for free — no signup needed.