Pckg Documentation
Pckg Documentation
  • About
  • Concept
  • Start
  • Deployment
  • Tests
  • Ecosystem
    • Docker images
    • Skeleton
  • Core packages
    • Auth
    • Cache
    • Collection
    • Concept
    • Database
      • Repository
        • Driver
      • Entity
        • Relations
        • Query
      • Record
        • Fields
        • Model
      • Events
      • Extensions
    • Framework
      • Environment
        • Console
        • Development
        • Production
        • Test
      • Application
      • Providers
      • Config
      • Router
      • Request
      • Response
      • Controller
        • Middleware
        • Afterware
      • View
      • Events
      • Exception
    • Generic
      • Dynamic
      • Generic
      • Maestro
    • Htmlbuilder
      • Elements
        • Form
        • Fields
      • Datasources
      • Validators
      • Decorators
    • Locale
    • Mail
      • Drivers
      • Template
      • Mail
    • Manager
      • Asset manager
      • SEO manager
      • Meta manager
      • Upload manager
      • Vue manager
      • Job manager
      • Locale manager
      • Page manager
    • Migrator
      • Migrations
      • Fields
    • Queue
      • Driver
      • Publisher
      • Subscriber
    • Storage
      • Driver
      • Media
    • Translator
  • More packages
    • API
    • HTTP QL
      • Read
      • Write
      • Uploads
    • Task
      • Async
    • Websocket
      • Server
      • Client
  • Frontend
    • Helpers JS
    • Helpers CSS
  • Extras
    • Parser
    • Payment
    • Tenant
Powered by GitBook
On this page
  • Groups
  • Resolvers

Was this helpful?

  1. Core packages
  2. Framework

Router

See url(), router(), route(), routeGroup()

Routes can be defined in any Provider:

public function routes() {
    return [
        new route('/foo', 'foo', \Foo\Controller\Bar::class),
        new route('/bar', 'bar', \Foo\Controller\Bar::class),
    ];
}

Groups

When sharing same parameters, they can be easily grouped:

public function routes() {
    return [
        routeGroup([
            'controller' => \Foo\Controller\Bar::class
        ])->routes([
            route('/foo', 'foo'),
            route('/bar', 'bar'),
        ])
    ];
}

Resolvers

Common usage is with named route parameters:

public function routes() {
    return [
        route('/foo/[bar]', 'foo', \Foo\Controller\Bar::class))
            ->resolvers([
                'bar' => \Foo\Resolver\Bar::class,
            ]),
    ];
}

... and then implementing resolver:

class Bar extends \Pckg\Framework\Router\RouteResolver {
    public function resolve($value) {
        return (new Foos())
            ->where('id', $value)
            ->withPermissionsToRead()
            ->oneOrFail();
    }

    public function parametrize($record) {
        return $record->id;
    }
}
PreviousConfigNextRequest

Last updated 2 years ago

Was this helpful?