<?php namespace Edulab\College\Providers; use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider; use Edulab\College\Models\College; use Edulab\College\Models\Student; use Edulab\College\Models\Guardian; use Edulab\College\Models\Teacher; use Request; use Route; class RouteServiceProvider extends ServiceProvider { /** * This namespace is applied to the controller routes in your routes file. * * In addition, it is set as the URL generator's root namespace. * * @var string */ protected $namespace = 'Edulab\College\Http\Controllers'; /** * Define your route model bindings, pattern filters, etc. * * @param \Illuminate\Routing\Router $router * @return void */ public function boot() { parent::boot(); if (Request::is('*/college/college/*')) { Route::bind('college', function ($college) { return College::findorNew($college); }); } if (Request::is('*/college/student/*')) { Route::bind('student', function ($student) { return Student::findorNew($student); }); } if (Request::is('*/college/guardian/*')) { Route::bind('guardian', function ($guardian) { return Guardian::findorNew($guardian); }); } if (Request::is('*/college/teacher/*')) { Route::bind('teacher', function ($teacher) { return Teacher::findorNew($teacher); }); } } /** * Define the routes for the package. * * @return void */ public function map() { $this->mapWebRoutes(); $this->mapApiRoutes(); } /** * Define the "web" routes for the package. * * These routes all receive session state, CSRF protection, etc. * * @return void */ protected function mapWebRoutes() { Route::group([ 'middleware' => 'web', 'namespace' => $this->namespace, ], function ($router) { require (__DIR__ . '/../../routes/web.php'); }); } /** * Define the "api" routes for the package. * * These routes are typically stateless. * * @return void */ protected function mapApiRoutes() { Route::group([ 'middleware' => 'api', 'namespace' => $this->namespace, 'prefix' => 'api', ], function ($router) { require (__DIR__ . '/../../routes/api.php'); }); } }