php - 防止 foreach 循环重复 -laravel
问题描述
我通过代码从我们的数据库中获取服务
'services' => Service::with('seller.user', 'seller.level', 'subcategory')
->whereHas('seller', function ($query) {
return $query->where('status', 'active');
})
->Where('tags', 'like', '%' . $this->tag . '%')
->withAvg('review', 'rating')
->withCount('review')
->paginate(20)
如何忽略循环中的重复子类别
@foreach ($services as $service)
$$service->subcategory->name
@endforeach
我得到很多重复的子类别
我需要子类别的详细信息而不仅仅是名称
关系
class Service extends Model
{
public function subcategory()
{
return $this->belongsTo(Subcategory::class);
}
}
class Subcategory extends Model
{
public function service()
{
return $this->hasMany(Service::class);
}
}
餐桌服务
Schema::create('services', function (Blueprint $table) {
$table->id();
$table->foreignId('seller_id')->constrained()->onDelete('cascade')->onUpdate('cascade');
$table->foreignId('subcategory_id')->constrained()->onDelete('cascade')->onUpdate('cascade');
$table->string('title')->nullable();
$table->string('slug')->nullable();
$table->float('price')->nullable();
$table->json('tags')->nullable();
}
表子类别
Schema::create('subcategories', function (Blueprint $table) {
$table->id();
$table->foreignId('category_id')->constrained()->onDelete('cascade')->onUpdate('cascade');
$table->string('name');
}
解决方案
您可以尝试以下方法:
@php
$subcategories = array();
foreach ($services as $key => $service) {
array_push($subcategories, $service->subcategory->name);
}
$subcategories = array_unique($subcategories);
@endphp
@foreach ($subcategories as $key => $subcategory)
{{ $subcategory }}
@endforeach
推荐阅读
- nginx - nginx上传文件并改名
- angular - 生成
的价值优先 的占位符 - angular - Angular 6 复选框多过滤器
- python - 根据最近更新的数据框行分离?
- php - 如果字段具有空白值,Codeigniter 表单验证器所需的规则第二次不起作用
- html - HTML日期控件的日期时间格式
- java - 使用带有 MapStruct 的构建器将空值映射到默认值
- c# - 从基抽象类和 IDisposable 的正确位置继承接口
- react-native - React Native ImagePicker 视频上传
- lets-encrypt - 使用让我们使用 Spring Boot 加密本地