Есть ли самый простой способ изменить имя ресурса в web.php [Laravel9]

Я изучаю маршрутизацию Laravel9 с примером кода, и у меня проблемы с изменением URL. Я хотел бы изменить URL, как показано ниже

В настоящее время я могу получить доступ к этому URL

127.0.0.01:8000/студент/

и

127.0.0.01:8000/студент/создать

но я хотел бы изменить вот так

127.0.0.01:8000/fun_student/

и

127.0.0.01:8000/fun_student/создать

Я написал так

веб.php

Route::prefix('fun_fun_student')->group(function (){
    Route::resource('students', StudentController::class);   
});

но я не могу отображать как этот URL. Может ли кто-нибудь научить меня правильному коду, пожалуйста?

ОБНОВЛЯТЬ

Я пытался

Route::resource('fun', StudentController::class);

то мой текущий список маршрутов

  GET|HEAD        fun ............................. fun.index › StudentController@index  
  POST            fun ............................. fun.store › StudentController@store  
  GET|HEAD        fun/create .................... fun.create › StudentController@create  
  GET|HEAD        fun/{fun} ......................... fun.show › StudentController@show  
  PUT|PATCH       fun/{fun} ..................... fun.update › StudentController@update  
  DELETE          fun/{fun} ................... fun.destroy › StudentController@destroy  
  GET|HEAD        fun/{fun}/edit .................... fun.edit › StudentController@edit 

Ларавель 8 или Ларавель 9? Зачем добавлять к маршрутам префикс fun_fun_student, если он не должен появляться нигде в URL-адресе? Пробовали Route::resource('fun_student', StudentController::class);? (Проверьте свои маршруты с помощью php artisan route:list)

brombeer 11.04.2023 10:30

Уважаемый @brombeer Спасибо, что ответили мне. Я использую Laravel 9. Я пробовал Route::resource('fun_student', StudentController::class); но у меня Route [students.create] не определен. ошибка. поэтому я искал способ легко изменить маршрут, поэтому нашел префиксную команду.

bluetail 11.04.2023 10:45

В руководстве Laravel есть раздел Контроллеры ресурсов, а также имена маршрутов для каждого действия. И в вашем списке маршрутов также отображаются имена маршрутов/действий. Используйте правильный

brombeer 11.04.2023 10:48

Мне жаль, что я все еще не понимаю. Вы имеете в виду, что я должен делать URL каждой страницы один за другим?

bluetail 11.04.2023 10:51

Нет, это не то, что я написал. Для Route::resource('fun', StudentController::class); имя будет fun.create (где бы вы ни использовали этот маршрут, вы его не показываете)

brombeer 11.04.2023 10:53

Спасибо, что ответили мне. Мне нужно время, чтобы понять, что вы советуете. Так что не могли бы вы дать мне время. Я сделаю свое.

bluetail 11.04.2023 11:10

Уважаемый @brombeer Большое спасибо за помощь. и извините, что я не мог понять вашу помощь из-за моего медленного мозга. Я попробовал ответ мистера Дасуна Таранги и решил. Еще раз спасибо.

bluetail 12.04.2023 01:47
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
7
65
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Чтобы изменить префикс вашего ресурса. вам нужно изменить имя ресурса.

Бывший:

Route::resource('fun_student', StudentController::class); 

Затем вы можете использовать такие маршруты:

Бывший:

<a href = "{{ route('fun_student.index') }}">Students</a>

Этот маршрут должен выводить следующий URL:

http://127.0.0.01:8000/fun_student

После изменения ресурса не забудьте очистить кеш, выполнив:

php artisan route:clear
// or
php artisan optimize:clear

Также измените route('students.xxx') на route('fun_student.xxx') в других местах вашего проекта.

Я бы посоветовал вам просмотреть документацию Laravel для получения дополнительной информации.

Уважаемый @Dasun Tharanga Спасибо за помощь. ваш ответ работает очень хорошо. но я застрял на странице редактирования. выкладываю другое. Не могли бы вы взглянуть на это, пожалуйста? stackoverflow.com/questions/75991162/…

bluetail 12.04.2023 03:10

Чтобы дополнить ответ Dasun Tharanga, если вы используете привязку модели маршрута, например:

/**
 * Display the specified resource.
*/
public function show(Student $student)
{
   //...
}

Вы должны изменить имя аргумента на:

 public function show(Student $fun_student)
 {
      //...
  }

Или вы должны назвать параметры маршрута ресурса

Route::resource('fun_student', StudentController::class)->parameters([
    'fun_student' => 'student'
]);

Уважаемый @Khang Tran Спасибо за ответ. Выглядит это действительно потрясающе. но извините, этот пример модели сценария CRUD не использует привязку. но я очень люблю этот код. Спасибо.

bluetail 12.04.2023 01:50

Другие вопросы по теме