gpt4 book ai didi

php - Laravel - toArray() 与 getAttributes()

转载 作者:行者123 更新时间:2023-12-04 00:58:47 26 4
gpt4 key购买 nike

我正在使用 laravel 6 并使用 eloquent join 来显示来自多个表的数据。

考虑以下代码:

    $ToGetDefaultAddress 
= TbPersonaddress::join('tb_cities AS TbCitie','TbCitie.n_CityId_PK', '=', 'tb_personaddresses.n_CityId_FK')
->join('tb_counties AS TbCountie','TbCountie.n_CountyId_PK', '=', 'tb_personaddresses.n_CountyId_FK')
->join('tb_states AS TbState', 'TbState.n_StateId_PK','=' ,'tb_personaddresses.n_StateId_FK')
->select('tb_personaddresses.n_PersonAddressesId_PK','tb_personaddresses.n_PersonId_FK',
'tb_personaddresses.d_EffectiveDateFrom','tb_personaddresses.d_EffectiveDateTo',
'TbCitie.s_CityCode','TbCitie.s_CityName','TbCountie.s_CountyCode',
'TbCountie.s_CountyName','TbState.s_StateCode','TbState.s_StateName')->first();

dd("Actual output:::::",$ToGetDefaultAddress);

实际输出: enter image description here

如上面的代码所示,我将此输出存储在 $ToGetDefaultAddress 多变的。
现在只获取属性数据,两个 toArray() getAttributes() 返回给我相同的结果。

例如:
$DefaultAddress = $ToGetDefaultAddress->toArray();


$DefaultAddress = $ToGetDefaultAddress->getAttributes();

返回相同的输出,如下所示:
enter image description here

我的问题是,使用 有什么区别? toArray() getAttributes() ?推荐哪一款?何时使用 toArray() 以及何时使用 getAttributes() ?

最佳答案

让我们看一下源代码:

  • toArray()
  • getAttributes()

  • 如果您查看它们,您会看到 toArray()方法返回具有关系和属性的完整模型和 getAttributes()只返回模型属性(通常只返回列)。

    这是来自 laravel 源代码的代码片段:
        /**
    * Convert the model instance to an array.
    *
    * @return array
    */
    public function toArray()
    {
    return array_merge($this->attributesToArray(), $this->relationsToArray());
    }

    I saw one method in source code which I didn't know. You can test it too: ->attributesToArray()

    关于php - Laravel - toArray() 与 getAttributes(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60390012/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com