簡體   English   中英

Laravel 8 如何給群命名

[英]Laravel 8 how to name a group

這個問題已經被問到,但在我看到的大多數答案中它已經過時了。

這就是我正在嘗試的:

Route::prefix('cart')->group(function() {
  Route::get('/mycart','App\Http\Controllers\frontend\CartController@mycart')->name('mycart');
  Route::get('/checkout','App\Http\Controllers\frontend\CartController@checkout')->name('checkout');
})->name('cart');

我想命名該組,然后在我的刀片中能夠做到:

@if (Route::currentRouteName() != 'individual_product')

上面給了我這個錯誤: Call to a member function name() on null

知道我做錯了什么嗎?

可以使用 arrays 配置所有內容:

use Illuminate\Support\Facades\Route;

Route::group(['prefix' => 'cart', 'name' => 'cart.'], function() {
    Route::get('/index',    ['as' => 'index',    'uses' => 'CartController@index']);
    Route::get('/checkout', ['as' => 'checkout', 'uses' => 'CartController@checkout']);
});

並且'as' => 'cart.index'可能仍然比 命名組更具可讀性(這可能取決於)。


在 Blade 中也可以使用Route

@if (Route::has('cart')) @endif
@if (Route::has('cart.index')) @endif

支持列出所有定義的路由:

php artisan route:list

您可以使用如下name前綴:

Route::name('cart.')->prefix('cart')->group(function() {
  Route::get('/mycart','App\Http\Controllers\frontend\CartController@mycart')->name('mycart');
  Route::get('/checkout','App\Http\Controllers\frontend\CartController@checkout')->name('checkout');
});

更多信息: https://laravel.com/docs/8.x/routing#route-group-name-prefixes

在刀片中你可以檢查

@if(request()->routeIs('cart.*')) // or ->routeIs('cart.mycart')
@endif

https://laravel.com/docs/8.x/requests#retrieving-the-request-path

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM