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

时间:2015-08-08 11:13:55

标签: php laravel laravel-5

我有:

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

使用:

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

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

上述路线仅供管理员访问。

我需要在将$ hard设置为true的路线中加入什么?

1 个答案:

答案 0 :(得分:2)

你会做这样的事情:

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

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

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

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

如果你没有设置“硬”的话。键入路径参数,将使用函数定义中的默认false