Я просто сделал это, чтобы добавить метод «удаления» GET.
После создания файлов вам просто нужно добавить
'AntonioRibeiro\Routing\ExtendedRouterServiceProvider',
к 'провайдерам' в вашем приложении / config.php
Отредактируйте псевдоним Route в этом же файле:
'Route' => 'Illuminate\Support\Facades\Route',
меняя это на
'Route' => 'AntonioRibeiro\Facades\ExtendedRouteFacade',
И убедитесь, что эти файлы загружаются автоматически, они должны находиться в каком-то каталоге, который есть у вас в composer.json (раздел «автозагрузка»).
Тогда вам просто необходимо:
Route::resource('users', 'UsersController');
И это (посмотрите на последнюю строку) результат, если вы запустите php artisan routes
:
Это мои исходные файлы:
ExtendedRouteFacade.pas
<?php namespace AntonioRibeiro\Facades;
use Illuminate\Support\Facades\Facade as IlluminateFacade;
class ExtendedRouteFacade extends IlluminateFacade {
public static function is($name)
{
return static::$app['router']->currentRouteNamed($name);
}
public static function uses($action)
{
return static::$app['router']->currentRouteUses($action);
}
protected static function getFacadeAccessor() { return 'router'; }
}
ExtendedRouter.pas
<?php namespace AntonioRibeiro\Routing;
class ExtendedRouter extends \Illuminate\Routing\Router {
protected $resourceDefaults = array('index', 'create', 'store', 'show', 'edit', 'update', 'destroy', 'delete');
protected function addResourceDelete($name, $base, $controller)
{
$uri = $this->getResourceUri($name).'/{'.$base.'}/destroy';
return $this->get($uri, $this->getResourceAction($name, $controller, 'delete'));
}
}
ExtendedRouteServiceProvider.pas
<?php namespace AntonioRibeiro\Routing;
use Illuminate\Support\ServiceProvider;
class ExtendedRouterServiceProvider extends ServiceProvider {
protected $defer = true;
public function register()
{
$this->app['router'] = $this->app->share(function() { return new ExtendedRouter($this->app); });
}
public function provides()
{
return array('router');
}
}
::resource
в противном случае вы получите сообщение об ошибке «Нет результаты запроса для модели».