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