【问题标题】:Eloquent ORM single item collection return as arrayEloquent ORM 单项集合返回为数组
【发布时间】:2013-11-08 01:08:10
【问题描述】:

代码:$account->deals

这就像返回一个对象或对象数组。

对象:{deal}

对象数组:[{deal}, {deal}, {deal}]

有没有办法强制调用返回一个“对象数组”,即使它只返回一个对象?

澄清一下,我不想使用foreachis_array()count() 等...

这是我希望工作的最终产品:$deals = array_merge($account->deals, $user->deals); 即使 Eloquent 只返回一个对象。

【问题讨论】:

    标签: php arrays laravel laravel-4 eloquent


    【解决方案1】:

    想通了!

    $deals = array_merge($account->deals->all(), $user->deals->all());

    希望这对未来的人有所帮助

    【讨论】:

      【解决方案2】:

      laravel 中的集合对象有 toArray() 方法将对象集合表示为多维数组(array of arrays)。试试这个:

      $deals = $account->deals->toArray();
      

      【讨论】:

      • 这会强制一个对象变成一个数组,而不是一个要返回的对象数组。
      • 请仔细阅读。我的例子是指 Collection 对象。如果 deal() 表示一个关系 (hasMany),动态属性 'deals' 将返回账户的交易集合,并且可以通过调用 toArray() 方法将其转换为交易数组的数组。
      • michaelcurry,您的解决方案在主题上下文中更加快速和充分。
      猜你喜欢
      • 2014-10-08
      • 2014-04-02
      • 2022-01-21
      • 2018-11-11
      • 2014-07-14
      • 2021-07-17
      • 2011-05-02
      • 2018-01-17
      • 1970-01-01
      相关资源
      最近更新 更多