【问题标题】:Laravel 5.3 on shared hosting; Page::findBySlug() returns nullLaravel 5.3 共享主机; Page::findBySlug() 返回 null
【发布时间】:2017-04-22 06:48:07
【问题描述】:

我刚刚将 Laravel 网站推送到共享主机上。将公用文件夹复制到/www,更改index.php以反映路径更改并配置我的.htaccess等。

起初我只是收到一个错误,告诉我 Page::findBySlug() 返回 null。用 dd() 再次检查,曾经并且仍然是 null。

FrontendController@index 是这样的

public function index($slug)
{
    $page = Page::findBySlug($slug);
    $pageTemplate = $page->templates->first();
    return view('frontend.pages.index', compact('page','pageTemplate'));
}

在玩弄 dd() 一段时间后,它现在将我发送到自定义 500,除非它应该从 db 中拉出 slug,在这种情况下,我会得到一个自定义 404。

编辑:我提取了相同版本的应用程序,但它已经从测试平台安装(而不是使用 composer instal 滚动),它可以正常工作,所以我怀疑它与托管有什么关系。鉴于我想以正确的方式做到这一点,我仍然很感激答案。运行全新安装后,我应该设置 slugs 吗?

我在这里缺少什么?谢谢。

【问题讨论】:

  • 您的数据库中是否有包含该 slug 的页面?
  • 如何在共享主机上运行 composer install?只需使用 ftp 或 sftp 将您拥有的所有内容复制到服务器即可。
  • 共享主机在终端访问和安装 composer、node 等方面存在不同程度的限制,具体取决于提供商。所以最好的方法是将您的项目从本地/开发机器复制/ftp上传到服务器。有关将 Laravel 项目上传到共享主机的说明,请参阅 stackoverflow.com/documentation/laravel/2410/deployment/7970/…。希望对您有所帮助。
  • 数据库只有一些页面的slug,例如隐私/联系人等。 Composer 安装在主机上运行得很好。我确实复制了一次,但男孩确实花了很长时间。现在,所有托管/项目明智的事情似乎都很好。我作为初级开发人员第一天被投入到这个为期 4 个月的开发项目中。我是这里唯一的开发人员,不得不更改/修复一堆东西,但是男孩,现在似乎很好。谢谢,偷看。

标签: php laravel laravel-5 composer-php slug


【解决方案1】:

试试$page= Page::where('slug',$slug)->first();

【讨论】:

  • 它什么都没有。仍然为空。
【解决方案2】:

尝试将您的 php 版本更新到 7.0。

【讨论】:

  • 这不是答案,请下次评论。
【解决方案3】:

由 php artisan route:clear 修复。 显然 route:cache 不是要走的路。

【讨论】:

    猜你喜欢
    • 2017-06-28
    • 2018-06-21
    • 2015-06-01
    • 2017-05-22
    • 1970-01-01
    • 2017-03-17
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多