我正在努力实现这样的目标
menu
- variants[]
- main_addons[]
- sub_addons[]
下面是我的代码。
菜单模型
class Menu extends Model
{
public function getVariantsAttribute()
{
return $this->variants()->get();
}
public function variants()
{
return $this->hasMany('App\Models\MenuVariant', 'menu_id', 'id');
}
}
变体模型
class MenuVariant extends Model
{
public function getMainAddonsAttribute()
{
$mainAddonIds = MenuAddons::select("mainaddons_id")->where('menudetails_id', $this->id)->groupBy('mainaddons_id')->get();
if (!$mainAddonIds->isEmpty()) {
return MainAddon::whereIn('id', $mainAddonIds)->orderBy('sortorder', 'ASC')->get();
}
return null;
}
}
通过 id 查看的控制器代码
$menu = Menu::find($id);
$menu->append('variants');
foreach ($menu->variants as $key => $variant) {
$variant->append('main_addons');
error_log(sizeof($variant->main_addons));
}
但它的反应只显示变体。我可以在终端日志中看到大小,但 MainAddons 没有附加。任何人都可以帮助我为什么main_addons
不附加?