Bra*_*rad 2 php laravel laravel-5
我目前正在开发一个 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'));
}
Run Code Online (Sandbox Code Playgroud)
以上结果导致以下转储:
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 [?]
}
Run Code Online (Sandbox Code Playgroud)
事实上,如果我去一个不存在的 ID http://localhost/freightrequests/12343243,Laravel 不会抛出 NotFoundHttpException. 如果我访问,http://localhost/users/12343243我会得到一个NotFoundHttpException. 除了这一资源,我的所有其他资源都运行良好。
我什至试图抛弃它Route::resource并将其替换为:
Route::get('freightrequests/{freightrequest}', 'FreightRequestController@show')->name('freightrequests.index');
我尝试重命名模型、控制器、路由和所有内容,以防发生冲突导致 Laravel 无法检索模型。它似乎注入了正确的类实例,但实际上并未尝试从服务器获取它。我试过清除缓存。我绝对无法弄清楚为什么这个特定模型无法正常工作,因为我的其他 6 个左右的资源可以正常工作。
有任何想法吗?
我在发布问题后不久发现了问题:
public function show(FreightRequest $freightRequest)
{
dd($freightRequest);
return view('freightrequests.show', compact('freightRequest'));
}
Run Code Online (Sandbox Code Playgroud)
应该:
public function show(FreightRequest $freightrequest)
{
dd($freightrequest);
return view('freightrequests.show', compact('freightrequest'));
}
Run Code Online (Sandbox Code Playgroud)
尝试绑定参数时区分大小写很重要,我花了很长时间才意识到 R 是大写的 :)