【问题标题】:Argument 1 passed to App\Http\Controllers\CMS\ProjectCredentialCpanelController::edit() must be an instance using laravel传递给 App\Http\Controllers\CMS\ProjectCredentialCpanelController::edit() 的参数 1 必须是使用 laravel 的实例
【发布时间】:2020-08-13 14:05:58
【问题描述】:

我正在尝试编辑,但不幸的是我遇到了错误,请帮我解决这个问题,谢谢。 请检查错误 https://flareapp.io/share/dmk2jl53

传递给 App\Http\Controllers\CMS\ProjectCredentialCpanelController::edit() 的参数 1 必须是 App\ProjectCredentialCpanel 的实例,给定字符串

控制器

public function edit(ProjectCredentialCpanel $projectcredentialcpanel,$projectId)
    {
        $data = [
            'project' => $projectId,
            'isEdit' => true,
        ];

        return view('cms.credential.cpanel.add-cpanel', $data);
    }

路线

Route::get('project/credential/{projectId}/cpanel/{projectcredentialcpanel}/edit', 'ProjectCredentialCpanelController@edit')->name('project.cpanel.edit');

【问题讨论】:

  • 路由中的参数名称是什么?
  • 您是否更改了编辑功能参数?还请分享这是哪个版本?
  • 请查看路由参数名称

标签: laravel


【解决方案1】:

对于路由模型绑定,您要绑定的模型名称(变量)应与 URI 段匹配。 https://laravel.com/docs/7.x/routing#implicit-binding.

原来如此:

public function edit($projectId, ProjectCredentialCpanel $projectcredentialcpanel)
{
    $data = [
        'project' => $projectId,
        'isEdit' => true,
    ];

    return view('cms.credential.cpanel.add-cpanel', $data);
}

【讨论】:

  • 感谢先生最后一个错误已解决,但我在 html 表单上遇到错误我该如何解决这个问题。flareapp.io/share/Lm8BEA7v#F58
  • in route 在最近的 laravel 更新中发生了一些变化,所以你必须显式地为在 route helper 中传递的数组中的参数名称表示:``` route('project.cpanel.update',['projectcredentialcpanel' => $projectcredentialcpanel->id]) ``` 或者我更喜欢不传递数组,只传递 id 或参数,如下所示:``` route('project.cpanel.update',$projectcredentialcpanel->id) ```
猜你喜欢
  • 2023-03-09
  • 2020-02-06
  • 2020-07-14
  • 2015-07-13
  • 2019-06-04
  • 2017-09-26
  • 2018-03-12
  • 2017-12-24
  • 2018-01-21
相关资源
最近更新 更多