Laravel 问题:缺少[路线:]所需的参数

Laravel 问题:缺少[路线:]所需的参数,laravel,routes,laravel-8,Laravel,Routes,Laravel 8,我非常困惑,但我想这是我犯的一个非常简单的错误 访问/admin/service时,会引发此异常: 缺少[Route:admin.service.toggle.isFeatured][URI:admin/service/toggle/isFeatured/{service}/{status}]所需的参数。(视图:C:\xampp\htdocs\cms\resources\views\admin\service\index.blade.php) 控制器:AdminServiceController

我非常困惑,但我想这是我犯的一个非常简单的错误

访问
/admin/service
时,会引发此异常:

缺少[Route:admin.service.toggle.isFeatured][URI:admin/service/toggle/isFeatured/{service}/{status}]所需的参数。(视图:C:\xampp\htdocs\cms\resources\views\admin\service\index.blade.php)

控制器:AdminServiceController.php

public function store(Request $request)
    {
      $data = $this->_validate($request);
      $data['creator_id'] = auth()->user()->id;
      Services::create($data);
      return redirect(route("admin.service.index"))->withSuccess("Die neue Leistung wurde hinzugefügt.");
    }

    public function toggleIsFeatured(Services $service,$status)
    {
      $service->update(["is_featured" => !$status]);
      redirect(back()->withSuccess('Status wurde erfolgreich geändert.'));
    }

    public function toggleIsActive(Services $service,$status)
    {
      $service->update(["is_active" => !$status]);
      redirect(back()->withSuccess('Status wurde erfolgreich geändert.'));
    }

    private function _validate($request) {
      $rules = [
        'title' => 'required|unique:services',
        'description' => 'required|min:100',
      ];
      return $this->validate($request, $rules);
    }
查看:index.blade.php

<a href="{{route('admin.service.toggle.isFeatured',[$service->id,$service->isFeatured])}}" class="btn btn-info btn-circle btn-sm"> @if($service->is_featured)<i class="fas fa-fw fa-star text-warning"></i> @else <i class="far fa-fw fa-star"></i> @endif</a>

<a href="{{route('admin.service.toggle.isActive',[$service->id,$service->isActive])}}" class="btn btn-info btn-circle btn-sm"><i class="fas fa-fw fa-circle @if($service->is_active) text-success @else text-danger @endif "></i></a>

您可能应该将参数作为关联数组传递给
route
helper。尽管真正的问题是您试图传递的内容是
null

route('admin.service.toggle.isFeatured', [
    'service' => $service->id,
    'status' => (int) $service->is_featured,
])
考虑到您要更新“is featured”的查询使用了字段
is_featured
,您在尝试访问模型上的该字段时使用了错误的属性,
isFeatured
,该属性不存在,因此返回
null

route('admin.service.toggle.isFeatured', [
    'service' => $service->id,
    'status' => (int) $service->is_featured,
])
我将潜在的布尔值转换为整数,这样就可以在该段的URL中实际输入一些内容,
0
1
。否则,
false
将是一个空字符串,
'


对于你的“是活跃的”东西来说,这也是同样的问题。在模型上使用了错误的属性。

您应该将这些参数作为关联数组传递给route helper,
['service'=>…,'status'=>…]
并且这些参数不能为
null
尝试像这样将值传递给anchor{route('admin.service.toggle.isFeatured',['service'=>$service->id,'status'=>$service->isFeatured])}@WaytoDeveloper同一问题:缺少必需的parameters@lagbox同样的问题:(谢谢你们,伙计们,它现在就像一个符咒!