你好,我有一个名为show的函数,它有2个参数idoptions,这是blade.php的代码:

<a href="{{route('orders.show',$order->id,'1')}}">
<button>Edit</button>
</a>

数字1是静态的,但我还有一个值为2的按钮,现在这是来自控制器的代码:

public function show($id, $option)
{
    $orders = Order::with('client', 'products')->where('id', $id)->firstOrFail();
    $clientList = Client::all();
    $productList = Product::all();
    switch ($option)
    {
        case 1:
        {
            return view('orders.edit', compact('orders', 'clientList', 'productList'));
            break;
        }
        case 2:
        {
            return view('orders.show', compact('orders', 'clientList', 'productList'));
            break;
        }
    }
}

但是当我执行代码时,我得到这个错误:

Too few arguments to function App\Http\Controllers\OrderController::show(), 1 passed in /home/user/Desktop/k_project/vendor/laravel/framework/src/Illuminate/Routing/Controller.php on line 54 and exactly 2 expected

基本上,第二个参数没有通过,我使用了另一个类似的方法:

<a href="{{ route('student.detail', ['id' => 5, 'parameter' => 'advanced-web-hindi', 'name' => 'anmol']) }}">Student detail</a>

从这个页面:Page

而在此之前,我只传递了一个值$id,它工作得很好,但现在我需要传递第二个参数.

这是我的路径定义,只有一个值超过$id就可以工作,但有两个值超过$id$option就会出错:

Route::resource('orders', OrderController::class);

推荐答案

您的路由有3个参数idparametername. 对于这一点,你可以有两种解决方案.

1. First Solution

route.php个个

Route::get('/orders/show/{id}', 'OrderController@show')->name('orders.show');

OrderController.php个个

public function show(Request $request, $id)
{
    $name = $request->input('name');
    $parameter = $request->input('parameter');
    ....
}

2. Second Solution

route.php个个

Route::get('/orders/show/{id}/{name}/{parameter}', 'OrderController@show')->name('orders.show');

OrderController.php个个

public function show($id, $name, $parameter)
{
    ....
}

Laravel相关问答推荐

laravel错误更新使用外键的数据库

Livewire 基于下拉 Select 自动填充输入框

如何在控制器中获取所需参数?

如何在Vite和Rollup中完全禁用分块?

当使用Laravel eloquent查询100000条数据时速度很慢

判断 Laravel 模型表中是否存在列,然后应用条件

在 laravel 查询构建器中使用多个 where 子句

合并两个 Eloquent 集合并删除所有重复项.

使用数据库用户提供程序时如何在 Laravel 中创建密码重置方法

调用未定义的方法 Maatwebsite\Excel\Excel::load()

如何从 laravel 中的现有数据库创建迁移

如何在本地 Laravel Homestead 站点上获取 https 证书

WhereNotExists Laravel Eloquent

禁用Eager的关系

如何使用 Laravel 测试授权重定向?

在 Laravel artisan 命令中使用详细

Laravel X-CSRF-Token 与 POSTMAN 不匹配

Laravel 单元测试依赖注入

Laravel 数据迁移

搜索结果分页 laravel 5.3