我目前正在开发PHP Laravel应用程序,到目前为止一切进展顺利。然而,我最近的资源FreightRequest
导致了极其奇怪的行为,我无法弄清楚。
我的路线文件包含以下内容:
Route::resource('freightrequests', 'FreightRequestController');
当我访问http://localhost/freightrequests/1
时,laravel未将模型正确绑定到我的FreightRequestController@show
方法。
我的方法如下:
public function show(FreightRequest $freightRequest)
{
dd($freightRequest);
return view('freightrequests.show', compact('freightRequest'));
}
以上结果导致以下转储:
FreightRequest {#429 ▼
#connection: null
#table: null
#primaryKey: "id"
#keyType: "int"
+incrementing: true
#with: []
#withCount: []
#perPage: 15
+exists: false
+wasRecentlyCreated: false
#attributes: []
#original: []
#casts: []
#dates: []
#dateFormat: null
#appends: []
#events: []
#observables: []
#relations: []
#touches: []
+timestamps: true
#hidden: []
#visible: []
#fillable: []
#guarded: array:1 [▶]
}
事实上,如果我去了一个不存在的身份证http://localhost/freightrequests/12343243
,Laravel就不会抛出NotFoundHttpException
。如果我访问http://localhost/users/12343243
,我会收到NotFoundHttpException
。除了这一个资源外,我的所有其他资源都运行良好。
我甚至试图抛弃Route::resource
并将其替换为:
Route::get('freightrequests/{freightrequest}', 'FreightRequestController@show')->name('freightrequests.index');
我尝试重命名模型,控制器,路线和所有内容以防万一有冲突导致Laravel无法检索模型。它似乎是注入正确的类实例,但实际上并没有尝试从服务器获取它。我已经尝试清除缓存了。我绝对无法弄清楚为什么这个特定的模型不起作用,因为我的其他6个左右的资源在没有问题的情况下工作。
有什么想法吗?
答案 0 :(得分:2)
我在发布问题后不久发现了这个问题:
public function show(FreightRequest $freightRequest)
{
dd($freightRequest);
return view('freightrequests.show', compact('freightRequest'));
}
应该是:
public function show(FreightRequest $freightrequest)
{
dd($freightrequest);
return view('freightrequests.show', compact('freightrequest'));
}
在尝试绑定参数时区分大小写很重要,我花了很长时间才意识到R是资本:)