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

imperium2335

我有:

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的什么?

帕特里克·赫布·内施库德拉

您将执行以下操作:

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

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

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

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

如果未在路由参数中设置“硬”键,false则将使用功能定义中的默认值

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章