Lew*_*dor 0 php laravel laravel-5 laravel-5.8
正如在基本的 Laracasts.com 教程(从头开始的 Laracast 5.7)中一样,我尝试使用以下方法public function show(prototypes $prototypes)参数来构造视图。但是我的视图创建正确但$prototypes为空。
该路线运行良好( /prototypes/1/edit),并且我确保prototype存在 id 为 1 的对象。我找到了一些较旧的解决方案,其中规定使用类似(integer $id)参数的内容,但这会导致更多代码。它应该像这样工作:
控制器:
public function edit(prototypes $prototypes)
{
//
return view('prototypes.edit', compact('prototypes'));
}
Run Code Online (Sandbox Code Playgroud)
根据Laracast From Scratch 的说法,这应该可行。
你知道我该如何解决这个问题吗?
该prototypes.edit方法知道如何使用正确的参数,这背后的机制是什么?
为了使隐式模型绑定起作用,注入的变量名称应该与路由参数名称匹配,在您的情况下,我认为您的参数名称可以是,您可以通过在控制台中{prototype}发出命令来验证它。php artisan route:list
如果这是真的,您必须$prototype在控制器函数中将变量名称更改为(请注意单数)以匹配参数名称{prototype},如下所示:
public function edit(prototypes $prototype)
{
return view('prototypes.edit', compact('prototype'));
}
Run Code Online (Sandbox Code Playgroud)
更新:顺便说一句,laravel 对模型名称的约定是单数驼峰式大小写,在您的情况下,您的模型应该命名为Prototypenot prototypes,即:
public function edit(Prototype $prototype)
{
return view('prototypes.edit', compact('prototype'));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1689 次 |
| 最近记录: |