我有:
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 这是一个可选的路由参数。
当你在某处使用这条路线时,你会像这样设置参数数组
$url = route('admin.sanitise.delete', ['id' => $someId, 'hard' => true]);
如果您没有在路由参数中设置“硬”键,则将使用函数定义中的默认 false
。
关于php - Laravel 通过路由将值传递给方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31892501/