Laravel 仅在某些路线上返回空白页
Laravel returning a blank page only on certain routes
我遇到了路由 return 空白页的问题。我正在使用 Homestead
作为我的开发环境,但我不确定如何调试。
当我访问白页时,/storage/logs/laravel ...
没有 return 任何异常。
web.php(失败的地方):
Route::get('/clinic/register', 'ClinicController@register');
Controller.php:
public function register()
{
return view('clinic.register', ['specialisms' => Specialism::pluck('specialism', 'id')]);
}
然而,当我访问 /clinic/register
时,我看到的是空白页面。我怎样才能看到它失败的原因?白页肯定会 return 某处异常?
因为您没有提供完整的路线设置。这个答案是我最好的猜测。看看有没有帮助。
您的问题提示路由设置不当。如果您已经创建了 clinic 资源,那么 clinic/register 路由应该在它之前。
// clinic/register route should come first
Route::get('clinic/register','ClinicController@register');
// followed by rest of the routes which resource will create
Route::resource('clinic','ClinicController');
得到空白页的原因是 Route::resource 会创建一些带有通配符的路由。
例如clinic/{clinic} 将映射到控制器上的显示方法。因此,当您向 clinic/register 发出获取请求时,它将映射到此 show 方法而不是您的 register 方法。
没有出现任何错误的一种可能是您的 show 方法还没有任何代码。因此,空白响应。
总结一下:注册路由的顺序很重要
我遇到了路由 return 空白页的问题。我正在使用 Homestead
作为我的开发环境,但我不确定如何调试。
当我访问白页时,/storage/logs/laravel ...
没有 return 任何异常。
web.php(失败的地方):
Route::get('/clinic/register', 'ClinicController@register');
Controller.php:
public function register()
{
return view('clinic.register', ['specialisms' => Specialism::pluck('specialism', 'id')]);
}
然而,当我访问 /clinic/register
时,我看到的是空白页面。我怎样才能看到它失败的原因?白页肯定会 return 某处异常?
因为您没有提供完整的路线设置。这个答案是我最好的猜测。看看有没有帮助。
您的问题提示路由设置不当。如果您已经创建了 clinic 资源,那么 clinic/register 路由应该在它之前。
// clinic/register route should come first
Route::get('clinic/register','ClinicController@register');
// followed by rest of the routes which resource will create
Route::resource('clinic','ClinicController');
得到空白页的原因是 Route::resource 会创建一些带有通配符的路由。 例如clinic/{clinic} 将映射到控制器上的显示方法。因此,当您向 clinic/register 发出获取请求时,它将映射到此 show 方法而不是您的 register 方法。
没有出现任何错误的一种可能是您的 show 方法还没有任何代码。因此,空白响应。
总结一下:注册路由的顺序很重要