Tôi chỉ làm điều đó, để thêm một phương thức "xóa".
Sau khi tạo tập tin của bạn, bạn chỉ cần thêm
'AntonioRibeiro\Routing\ExtendedRouterServiceProvider',
đến 'nhà cung cấp' trong ứng dụng / config.php của bạn
Chỉnh sửa bí danh Tuyến đường trong cùng tệp này:
'Route' => 'Illuminate\Support\Facades\Route',
đổi nó thành
'Route' => 'AntonioRibeiro\Facades\ExtendedRouteFacade',
Và đảm bảo rằng các tệp đó đang được tự động tải, chúng phải nằm trong một số thư mục mà bạn có trong composer.json (phần "tự động tải").
Sau đó, bạn chỉ cần:
Route::resource('users', 'UsersController');
Và điều này (nhìn vào dòng cuối cùng) là kết quả nếu bạn chạy php artisan routes
:
Đó là những tập tin nguồn của tôi:
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
cách khác bạn nhận được một thông báo lỗi: "Không kết quả truy vấn cho mô hình".