Php Laravel通过路由将值传递给方法

Php Laravel通过路由将值传递给方法,php,laravel,laravel-5,Php,Laravel,Laravel 5,我有: 与: 这让非管理员和管理员都可以删除产品,但我只希望管理员能够硬删除 上面的路由只能由管理员访问 要将$hard设置为true,我需要在路由中添加什么内容?您可以执行以下操作: public function delete($id, $hard = false) { $product= Product::find($id); if($hard) { $product->destroy(); } else { $product-

我有:

与:

这让非管理员和管理员都可以删除产品,但我只希望管理员能够硬删除

上面的路由只能由管理员访问


要将$hard设置为true,我需要在路由中添加什么内容?

您可以执行以下操作:

public function delete($id, $hard = false) {
    $product= Product::find($id);
    if($hard) {
        $product->destroy();
    } else {
        $product->delete();
    }
}
{hard?}
中的问号告诉laravel这是一个可选的路由参数

当您在某处使用此路由时,您可以将params数组设置为

Route::delete('admin/sanitise/{id}/delete/{hard?}', ['as' => 'admin.sanitise.delete', 'uses' => 'ProductController@delete']);
如果未在路由参数中设置“硬”键,将使用函数定义中的默认值
false

将其添加为可选参数
Route::delete('admin/sanitise/{id}/delete/{hard?}', ['as' => 'admin.sanitise.delete', 'uses' => 'ProductController@delete']);
$url = route('admin.sanitise.delete', ['id' => $someId, 'hard' => true]);