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

我有一个奇怪的场景。在我的这个项目中,我有几个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>

服务提供商(未更改):

<?php


namespace 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访问权限),并重新上传整个项目,以防缺少依赖项(?)或其他内容,但仍然没有运气。


莫回无
浏览 80回答 1
1回答

慕少森

具体来说,我无法弄清楚问题出在哪里。但是,由于我需要为其他内容执行此操作,因此我清除了所有缓存(包括存储文件夹中的everthing - 除了用户提交的文件),之后,视图编辑器在预生产环境中正确检索了变量。*shrugs*我以前删除了存储\框架\视图中的所有PHP文件,但这没有帮助,所以我猜其他一些临时文件把事情搞砸了。无论如何,底线:如果您遇到此问题,您可以尝试删除所有临时文件并清除所有缓存,如果幸运的话,这可能会解决问题。如果其他人有不同的答案,请让我知道,我总是有兴趣学习新的东西。
打开App,查看更多内容
随时随地看视频慕课网APP