리소스 컨트롤러의 Larabel 명명된 경로
Larabel 4.2를 사용하여 자원 컨트롤러 루트에 이름을 할당할 수 있습니까?루트는 다음과 같이 정의됩니다.
Route::resource('faq', 'ProductFaqController');
루트에 다음과 같은 이름 옵션을 추가하려고 했습니다.
Route::resource('faq', 'ProductFaqController', array("as"=>"faq"));
/ /faq 루트를 {{ Route::currentRouteName() }}
은 산출된다.faq.faq.index
한 것이 faq
.
자원 컨트롤러 루트를 사용하면 작성된 개별 경로별로 이름이 자동으로 생성됩니다. Route::resource()
는 기본적으로 각 루트를 수동으로 정의할 필요가 없는 개별 루트를 생성하는 도우미 방식입니다.
하려면 , 「Da」라고 입력합니다.php artisan routes
4 라라4 larphp artisan route:list
Larabel 5를 터미널/콘솔에 넣습니다.자원 컨트롤러 문서페이지(Laravel 4.x | Laravel 5.x)에서도 생성된 루트명의 유형을 확인할 수 있습니다.
리소스 컨트롤러에 의해 생성된 루트 이름을 변경할 수 있는 방법은 다음 두 가지가 있습니다.
를
names
파라미터의 를 지정합니다.$options
각 키는 자원 컨트롤러 방식(인덱스, 스토어, 편집 등)이며 값은 루트에 지정할 이름입니다.Route::resource('faq', 'ProductFaqController', [ 'names' => [ 'index' => 'faq', 'store' => 'faq.new', // etc... ] ]);
명기해 주세요.
as
옵션을 지정하여 모든 루트 이름의 프레픽스를 정의합니다.Route::resource('faq', 'ProductFaqController', [ 'as' => 'prefix' ]);
'하다'와 .
prefix.faq.index
,prefix.faq.store
등등.
Larabel 5.5+를 사용하는 응답자는 다음 페이지를 참조하십시오.
Route::namespace('Admin')->prefix('admin')->name('admin.')->group(function () {
Route::resource('users','UserController');
});
이러한 옵션을 사용하면 리소스에 대해 다음과 같은 결과가 됩니다.
namespace()
를 \Admin으로 User Controller( 컨트롤러)prefix()
는 요구 를 /(URI) /admin/users(URI)로 합니다.name()
、 name access 、 [ Route name ]를 「 「 sets 、 [ Route name accessor ]를 설정합니다.route('admin.users.index')
»
name()
DOT를 사용합니다.
Larabel 5.5 이전 버전에서 이 방법이 효과가 있는지 다른 사람에게 알려주세요.제 답변을 갱신하겠습니다.
업데이트:
Taylor는 5.5에서 이를 공식적으로 문서화하기 위해 내 PR을 수락했습니다.
https://laravel.com/docs/5.5/routing#route-group-name-prefixes
LARAVEL 8 업데이트
8의 으로 Laravel 8을 .
namespace
「」는 되지 않습니다.namespace
로 in로RouteServiceProvider
의라벨 의라벨 의라벨 표라벨 는라벨이다루트를 할 때 " "는 됩니다.namespace
루트를 등록하면 컨트롤러와 루트를 정리할 때 훨씬 자유로워집니다.
Larabel 8에서는, 이 투고의 상부에 기재되어 있는 원래의 예는, 스태틱클래스명에 대한 자기 참조를 사용해 다음과 같습니다.
use \App\Http\Controllers\Admin\{
UserController,
ProductController,
AnotherController,
}
Route::prefix('admin')->name('admin.')->group(function () {
Route::resource('users', UserController::class);
Route::resource('products', ProductController::class);
Route::resource('another', AnotherController::class);
});
Larabel 4.2 (5.7에서 테스트 완료)에서 사용할 수 있는지 모르겠지만,names
리소스에 의해 생성된 모든 경로의 이름을 변경합니다.
Route::resource('faq', 'ProductFaqController', ['names' => 'something']);
결과는 이렇게 될 것이다.
something.index
각 루트를 지정할 필요가 없습니다.
모든 업데이트 이후 Larabel 5.5 사용
Route::resource('faqs', 'FaqController', ['as' => 'faqs']);
사용하지 않으면['as' => 'faqs']
위의 코드에서도 동일하게 동작합니다.
[갱신 완료]
이것은 「리소스」에 유효하다는 것을 명심하는 것이 중요합니다.
예를 들어 다음과 같습니다.
Route::resource('admin/posts/tags', 'PostTagController', ['as' => 'posts']);
결과는 다음과 같을 것이다.
POST | admin/posts/tags | posts.tags.store
GET|HEAD | admin/posts/tags | posts.tags.index
GET|HEAD | admin/posts/tags/create | posts.tags.create
DELETE | admin/posts/tags/{tag} | posts.tags.destroy
PUT|PATCH | admin/posts/tags/{tag} | posts.tags.update
GET|HEAD | admin/posts/tags/{tag} | posts.tags.show
GET|HEAD | admin/posts/tags/{tag}/edit | posts.tags.edit
Larabel 8에서 테스트 완료:
리소스 경로의 이름을 선택적 인수로 전달 이름으로 정의할 수 있습니다.예:
use App\Http\Controllers\UsersController;
Route::resource('reservations', UsersController::class, ['names' => 'users']);
위의 예에서는 다음과 같은 루트를 정의하고 있습니다.users.index
,users.store
기타.
루트명은 다음과 같이 전달할 수도 있습니다.
Route::resource('reservations', UsersController::class, ['names' => 'admin.users']);
prefix가 다음과 같은 루트를 정의합니다.admin
예를 들어admin.users.index
,admin.users.store
Larabel 5.5 사용
Route::resource('admin/posts/tags', 'PostTagController', ['as' => 'posts']);
'리소스'를 염두에 두는 것이 중요합니다.
예를 들어, 프로젝트에서 다음과 같은 내용을 보냅니다.
Route::resource('admin/posts/tags', 'PostTagController', ['as' => 'posts']);
인 라라벨 8
Route::resource('product',
App\Http\Controllers\API\Admin\ProductController::class, [
'names' => [
'index' => 'admin.product.index',
'store' => 'admin.product.store',
'update' => 'admin.product.update',
'destroy' => 'admin.product.delete'
]
])->except(['edit', 'create']);
루트::resource('articles', 'ArticleController', ['names' => 'xyz'])
당신은 내가 테스트하는 5.7의 리소스에 이름을 설정할 필요가 없습니다.그것은 url로부터 루트 이름을 자동으로 생성합니다.
당신과 같은 에러가 발생했습니다.저는 네임스페이스/ControllerName 경로 전체를 추가함으로써 동작했습니다.
루트::resource('스태프', '앱\Http\Controllers\StaffController');
이름을 변경할 수 있습니다.resource routes
에AppServiceProvider.php
다음과 같이 합니다.
public function boot()
{
Route::resourceVerbs([
'create' => 'neu',
'edit' => 'bearbeiten',
]);
}
이 기능은 다음 사용자를 위해 설계된 것으로 알고 있습니다.localization
.
언급URL : https://stackoverflow.com/questions/25290229/laravel-named-route-for-resource-controller
'source' 카테고리의 다른 글
PyCrypto AES 256을 사용한 암호화 및 복호화 (0) | 2023.01.15 |
---|---|
MySQL - 그룹화 기준 이외의 컬럼 선택 (0) | 2023.01.15 |
GDB를 사용하여 메모리 내용을 수정하는 방법 (0) | 2023.01.15 |
재귀 SQL 쿼리의 무한 루프 (0) | 2023.01.15 |
두 날짜 사이의 시간을 찾을 수 없습니다 MySQL (0) | 2023.01.15 |