Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
未定义的偏移量:CompilesLoops.php laravel 5中的1_Php_Mysql_Laravel_Eloquent_Nested Loops - Fatal编程技术网

未定义的偏移量:CompilesLoops.php laravel 5中的1

未定义的偏移量:CompilesLoops.php laravel 5中的1,php,mysql,laravel,eloquent,nested-loops,Php,Mysql,Laravel,Eloquent,Nested Loops,我有一份服务清单。现在我想将子服务添加到服务列表中。我有两个表'services'和'sub services',带有外键约束'service_id'。现在,我想在master.blade.php中显示“服务”和相关的“子服务”。对于服务,它可以正常工作,但是,当尝试使用子服务时,会出现此错误。有人能帮我得到预期的结果吗。 在master.blade.php中- <li class="dropdown"><a href="#" class="dropdown-toggle" d

我有一份服务清单。现在我想将子服务添加到服务列表中。我有两个表'services'和'sub services',带有外键约束'service_id'。现在,我想在master.blade.php中显示“服务”和相关的“子服务”。对于服务,它可以正常工作,但是,当尝试使用子服务时,会出现此错误。有人能帮我得到预期的结果吗。 在master.blade.php中-

<li class="dropdown"><a href="#" class="dropdown-toggle" data-toggle="dropdown"> Services</a>
      <ul class="dropdown-menu services-dropdown" role="menu">
         @forelse(App\Model\Service::all() as $service)
           <li class="dropdown-submenu">
              <a href="{{ url('services/'.$service->slug) }}">{{ $service->title }}</a>
                 <ul class="dropdown-menu sub-services">
                   @foreach(App\Model\SubService::where('service_id', '=',$service->id)->get()) as $subservice)
                     <li>
                       <a href="{{ url('sub-services/'.$subservice->slug) }}">{{ $subservice->title }}</a>
                     </li>
                   @endforeach
                  </ul>
           </li>
         @empty

         @endforelse
      </ul>
</li>
    • @forelse(App\Model\Service::all()作为$Service)
      • @foreach(App\Model\SubService::where('service_id','=',$service->id)->get())作为$SubService)
      • @endforeach
    • @空的 @endforelse
  • 这里有两张桌子- 1.服务表

    2.子服务表
    您使用了错误的语法。您在
    get()
    附近使用冗余
    ,因此将其更改为:

    @foreach(App\Model\SubService::where('service_id', $service->id)->get() as $subservice)
    

    此外,正如我在最佳实践回购中所说。考虑把逻辑移到控制器上。

    < P>这是在刀片文件中编写逻辑部分的一种坏方法。我建议你把它移到控制器上,因为如果你需要改变代码,你必须编辑刀片页。同时,请利用关系来获取数据,你可以把服务和子服务联系起来。 例如 Service.php(模型文件)

    SubService.php(模型文件)

    您的刀片代码:

     @forelse(App\Model\Service::all() as $service)
            <li class="dropdown-submenu">
                <a href="{{ url('services/'.$service->slug) }}">{{ $service->title }}</a>
                    <ul class="dropdown-menu sub-services">
                        @foreach($service->subServices as $subservice)
                            <li>
                                <a href="{{ url('sub-services/'.$subservice->slug) }}">{{ $subservice->title }}</a>
                            </li>
                        @endforeach
                    </ul>
                </li>
            @empty
    
        @endforelse
    
    @forelse(App\Model\Service::all()作为$Service)
    
    • @foreach($service->subservice作为$subservice)
    • @endforeach
  • @空的 @endforelse
    如果未正确关闭循环,也会发生此错误


    使用
    @foreach()
    启动一个循环,使用
    @endforeach
    关闭同一个循环。

    错误是什么,您能否在CompilesLoops.php(第95行)中发布irUndefined offset:1?它一次获取所有“子服务”列表。我只想显示哪个服务中有相关的子服务。@RashedHasan它与原始问题无关。如果答案解决了你的错误,你应该接受它;如果你自己无法解决新问题,你应该提出新问题。
    public function services()
        {
            return $this->belongsTo('App\Service','service_id');
        }
    
     @forelse(App\Model\Service::all() as $service)
            <li class="dropdown-submenu">
                <a href="{{ url('services/'.$service->slug) }}">{{ $service->title }}</a>
                    <ul class="dropdown-menu sub-services">
                        @foreach($service->subServices as $subservice)
                            <li>
                                <a href="{{ url('sub-services/'.$subservice->slug) }}">{{ $subservice->title }}</a>
                            </li>
                        @endforeach
                    </ul>
                </li>
            @empty
    
        @endforelse