为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel 5.6 View Composer 無法在 Windows 上使用 Apache

Laravel 5.6 View Composer 無法在 Windows 上使用 Apache

PHP
莫回无 2022-08-05 16:44:20
我有一个奇怪的场景。在我的这个项目中,我有几个View Composers。到目前为止,它们都运行良好,但今天我更改了如何为我从作曲家发送的变量之一分配值,并将其分配到相应的视图。我没有更改变量或 Composer Service Provider 的名称,也没有更改视图的名称。我刚刚更改了变量的值。所以奇怪的是,它在我的本地环境(通过windows主机上的virtualbox的homestead 8.0.1)上工作得很好,但是当我部署到预生产环境(Windows Server 2016与Apache 2.4)时,我得到一个“未定义变量”错误,用于尝试在视图中回显的任何变量。如果有人知道服务器是否可以在View Composers的调用或执行方式中发挥作用,我将不胜感激您的启发。这是我的代码(尽管有点简化):视图代码段(未更改):<div class="col-sm-4">  <div class="form-group">    <label for="county">County:</label>    <select class="js-select2 form-control" name="county" id="county" style="width: 100%;" data-placeholder="Choose a county">      <option></option>      @foreach ($county ?? array() as $k => $v)        <option value="{{ $k }}">{{ $v }}</option>      @endforeach    </select>  </div></div><div class="col-sm-4">  <div class="form-group">    <label for="state">State:</label>    <select class="js-select2 form-control" name="state" id="state" style="width: 100%;" data-placeholder="Choose a state">      <option></option>      @foreach ($state ?? array() as $k => $v)        <option value="{{ $k }}">{{ $v }}</option>      @endforeach    </select>  </div></div>服务提供商(未更改):<?phpnamespace App\Providers;use Illuminate\Support\Facades\View;use Illuminate\Support\ServiceProvider;class ComposerServiceProvider extends ServiceProvider{    public function boot()    {        View::composers([          'App\Http\ViewComposers\MyComposer' => 'name.of.my.view',          'App\Http\ViewComposers\OtherComposer' => ['one.view','another.view'],         ]);    }    public function register()    {        //    }}我尝试通过路由清除工匠缓存(因为我没有对预生产服务器的ssh访问权限),并重新上传整个项目,以防缺少依赖项(?)或其他内容,但仍然没有运气。
查看完整描述

1 回答

?
慕少森

TA贡献2019条经验 获得超9个赞

具体来说,我无法弄清楚问题出在哪里。但是,由于我需要为其他内容执行此操作,因此我清除了所有缓存(包括存储文件夹中的everthing - 除了用户提交的文件),之后,视图编辑器在预生产环境中正确检索了变量。*shrugs*

我以前删除了存储\框架\视图中的所有PHP文件,但这没有帮助,所以我猜其他一些临时文件把事情搞砸了。

无论如何,底线:如果您遇到此问题,您可以尝试删除所有临时文件并清除所有缓存,如果幸运的话,这可能会解决问题

如果其他人有不同的答案,请让我知道,我总是有兴趣学习新的东西。


查看完整回答
反对 回复 2022-08-05
  • 1 回答
  • 0 关注
  • 79 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号