ahmetbarut/laravel-multi-route

此包已废弃,不再维护。未建议替代包。

Laravel多语言路由使用

1.2 2021-07-03 14:33 UTC

This package is auto-updated.

Last update: 2023-03-29 01:01:52 UTC


README

它回来了,使用比以前更简单,类似于Symfony路由的多语言路由包

设置

    composer require ahmetbarut/laravel-multi-route

功能

  • 可用注解
  • 多语言
  • 中间件
  • 分组
  • 前缀
  • 名称

使用

简单使用

如果您愿意,可以在数组中指定要使用的语言及其索引。这种使用可能会使路由文件膨胀

use AhmetBarut\Multilang\Route;
use App\Http\Controllers\SomeController;


Route::get([
    'en' => '/',
    'tr' => '/tr',
    'es' => '/es'
], function () {
    return 'index';
});

// OR

Route::get([
    'en' => '/',
    'tr' => '/tr',
    'es' => '/es'
], [SomeController::class, 'index']);

使用注解

使用注解可以使它看起来更简单、更美观,并且从注解中可能更清楚地了解哪个方法支持哪些地区。

必须使用@Route指令,否则将无法发现路由

示例

use AhmetBarut\Multilang\Route;
use App\Http\Controllers\SomeController;

/**
 * @Route(en, /en)
 */
Route::get([SomeController::class ,'index']);


// SomeController.php
class SomeController extends Controller
{
    /**
     * @Route(en, /en)
     */
    public function index()
    {
        return 'index';
    }
}

使用数组注解

use AhmetBarut\Multilang\Route;
use App\Http\Controllers\SomeController;


Route::get([SomeController::class ,'index']);


// SomeController.php
class SomeController extends Controller
{
    /**
     * @Route([en =>, tr => /tr, es => /es])
     */
    public function index()
    {
        return 'index';
    }
}

您必须使用group方法来使用前缀、全局中间件等功能。

使用名称和中间件

use AhmetBarut\Multilang\Route;
use App\Http\Controllers\SomeController;


Route::group(['middleware' => 'web', 'prefix' => 'hello'], function () {
    Route::get([SomeController::class, 'index'])->name('home');
    Route::get([SomeController::class, 'create'])->name('create');
});


// SomeController.php
class SomeController extends Controller
{
    /**
     * @Route([en => /, tr => /tr, de => /de])
     */
    public function index()
    {
        return 'index';
    }
}