【问题标题】:Laravel returning a blank page only on certain routesLaravel 仅在某些路线上返回空白页
【发布时间】:2017-03-19 23:52:43
【问题描述】:

我遇到了路由返回空白页的问题。我使用Homestead 作为我的开发环境,我不确定如何调试。

当我访问白页时,/storage/logs/laravel ... 没有返回任何异常。

web.php(失败的地方):

Route::get('/clinic/register', 'ClinicController@register');

Controller.php:

public function register()
{
    return view('clinic.register', ['specialisms' => Specialism::pluck('specialism', 'id')]);
}

然而,当我访问/clinic/register 时,我看到的是一个空白页。我怎样才能看到它失败的原因?白页肯定会在某处返回异常吗?

【问题讨论】:

  • 你的视图名称和路径是resources\views\clinic\register.blade.php吗?如果是,请显示此视图。
  • 是的,这就是视图所在的位置。我目前只有一个<p>hello</p>
  • 您的代码看起来不错。尝试使用php artisan view:clear清除视图缓存
  • 刚刚试了一下,还是返回空白页。
  • 所有其他视图都可以正常工作吗?

标签: php laravel laravel-5 laravel-5.3


【解决方案1】:

由于您尚未提供完整的路线设置。这个答案是我最好的猜测。看看有没有帮助。

您的问题暗示路由设置不正确。如果您创建了 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 发出 get 请求时,它将被映射到此 show 方法而不是您的 register 方法。

没有出现任何错误的一种可能性是您的 show 方法还没有任何代码。因此,一个空白的响应。

总结一下:您注册路线的顺序很重要

【讨论】:

  • 你说的很对。我在顶部有一个 Route::get('/'),​​非常感谢!
  • 太棒了,你真的在​​类似的问题上拯救了我的一天!
猜你喜欢
  • 2015-06-07
  • 1970-01-01
  • 2013-04-05
  • 2021-08-12
  • 2022-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-24
相关资源
最近更新 更多