【问题标题】:laravel nested relationships max()laravel 嵌套关系 max()
【发布时间】:2021-07-19 08:01:57
【问题描述】:

此代码不起作用。这怎么可能?

$product->variants()->promotions()->min('promotion_price');

关系:

class Product extends Model
{
  public function variants(){
    return $this->hasMany(ProductHasVariant::class);
  }
}



class ProductHasVariant extends Model
{
  public function promotions()
  {
    return $this->morphedByMany(Promotion::class, 'variantable', 'product_variantables', 'product_variant_id', 'variantable_id');
  }
}

.......................

【问题讨论】:

  • 首先,您是否有任何其他表命名为变量,因为我没有看到任何让您将模型命名为 ProductHasVariant 的东西。 2nd,你的代码不是很清楚,但你可以得到产品 loadMin('variants.products')

标签: sql laravel eloquent


【解决方案1】:

您在产品中的变体关系是返回数组对象,您需要获取单个对象变体,然后才能在 ProductHasVariant 中获得提升。 ProductHasVariant 中的促销也是返回数组对象,只需做同样的事情。

或者

你可以这样做来测试你的关系模型,但不是个好主意。

$product->variants()[0]->promotions()[0]->min('promotion_price');

【讨论】:

    猜你喜欢
    • 2014-10-27
    • 2019-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-20
    • 2021-08-05
    • 2020-11-22
    • 2017-03-02
    相关资源
    最近更新 更多