ฉันเพิ่งทำเช่นนั้นเพื่อเพิ่มวิธีการ "ลบ" GET
หลังจากสร้างไฟล์ของคุณคุณเพียงแค่ต้องเพิ่ม
'AntonioRibeiro\Routing\ExtendedRouterServiceProvider',
เป็น 'ผู้ให้บริการ' ในแอป / config.php ของคุณ
แก้ไขเส้นทางนามแฝงในไฟล์เดียวกันนี้:
'Route' => 'Illuminate\Support\Facades\Route',
เปลี่ยนเป็น
'Route' => 'AntonioRibeiro\Facades\ExtendedRouteFacade',
และตรวจสอบให้แน่ใจว่าไฟล์เหล่านั้นถูกโหลดอัตโนมัติต้องอยู่ในไดเรกทอรีที่คุณมีใน composer.json (ส่วน "autoload")
จากนั้นคุณเพียงแค่ต้อง:
Route::resource('users', 'UsersController');
และนี่ (ดูที่บรรทัดสุดท้าย) คือผลลัพธ์ถ้าคุณเรียกใช้php artisan routes
:
นี่คือไฟล์ต้นฉบับของฉัน:
ExtendedRouteFacade.pas
<?php namespace AntonioRibeiro\Facades;
use Illuminate\Support\Facades\Facade as IlluminateFacade;
class ExtendedRouteFacade extends IlluminateFacade {
/**
* Determine if the current route matches a given name.
*
* @param string $name
* @return bool
*/
public static function is($name)
{
return static::$app['router']->currentRouteNamed($name);
}
/**
* Determine if the current route uses a given controller action.
*
* @param string $action
* @return bool
*/
public static function uses($action)
{
return static::$app['router']->currentRouteUses($action);
}
/**
* Get the registered name of the component.
*
* @return string
*/
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');
/**
* Add the show method for a resourceful route.
*
* @param string $name
* @param string $base
* @param string $controller
* @return void
*/
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 {
/**
* Indicates if loading of the provider is deferred.
*
* @var bool
*/
protected $defer = true;
/**
* Register the service provider.
*
* @return void
*/
public function register()
{
$this->app['router'] = $this->app->share(function() { return new ExtendedRouter($this->app); });
}
/**
* Get the services provided by the provider.
*
* @return array
*/
public function provides()
{
return array('router');
}
}
::resource
มิฉะนั้นคุณจะได้รับข้อความแสดงข้อผิดพลาด "ไม่มีผลการค้นหาสำหรับรูปแบบ"