2015-08-08 14 views
3

我:Laravel通过路线的值传递给方法

Route::delete('admin/sanitise/{id}/delete', ['as' => 'admin.sanitise.delete', 'uses' => '[email protected]']); 

有了:

public function delete($id, $hard = false) { 
    $product= Product::find($id); 
    if($hard) { 
     $product->destroy(); 
    } else { 
     $product->delete(); 
    } 
} 

这让两个非管理员和管理员删除产品,但,我只希望管理员在能够硬删除。

上面的路线是只有管理员访问。

我需要什么,把在路由设置$很难真的吗?

+0

它添加一个可选的PARAM http://laravel.com/docs/5.1/routing#parameters-optional-parameters – nathanmac

回答

2

你会做这样的事情:

Route::delete('admin/sanitise/{id}/delete/{hard?}', ['as' => 'admin.sanitise.delete', 'uses' => '[email protected]']); 

{hard?}问号告诉laravel,这是一个可选的路径参数。

当你的地方使用这条路线,你会从你的函数设定的参数数组一样

$url = route('admin.sanitise.delete', ['id' => $someId, 'hard' => true]); 

如果不设置路由的参数“硬”键,默认false定义将被使用。

相关问题