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

标签 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?

最佳答案

你会做这样的事情:

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/

相关文章:

javascript - 通过多个 php 文件通过 javascript POST 数据

java - 使用 SOAP Web 服务 - Java VS PHP

拉拉维尔 4 : how to run a raw SQL?

php - Laravel 数据表排序附加字段

php - artisan 迁移访问被拒绝

php - 当响应为 JSON 并且字段包含数字时,模型访问器不起作用

php - 使用表单选项过滤 MYSQL 查询

php - 奇怪的加入php

php - SQLSTATE [HY000] [2002] Laravel 宅基地内的连接被拒绝

laravel-5 - 有什么方法可以在laravel 5中发送闭包?