You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为Symfony项目自定义Laravel Valet驱动时遇文件加载错误求助

问题原因
  • 自定义Valet驱动未设置当前工作目录为项目的public目录,导致PHP执行时的相对路径基准错误。
  • Symfony的public/index.php通过dirname(__DIR__)定位项目根目录,该写法依赖当前工作目录为public。Laravel默认驱动会自动切换到public目录,但你继承后覆盖了frontControllerPath方法,却未保留切换工作目录的逻辑,导致路径计算出错。
  • Valet自身server.php中的相对路径./cli/includes/require-drivers.php也会因工作目录不正确而无法找到文件。
解决办法

修改自定义驱动的frontControllerPath方法,在返回前端控制器路径前切换到项目的public目录:

public function frontControllerPath(string $sitePath, string $siteName, string $uri): string
{
    // 切换到项目public目录,修正相对路径基准
    chdir($sitePath.'/public');
    
    return $sitePath.'/public/index.php';
}

修改完成后,Symfony的dirname(__DIR__)将正确指向项目根目录,vendor/autoload_runtime.php可正常加载,Valet的依赖文件也能被找到,站点即可恢复正常访问。

内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 02:17:45