【问题标题】:how to add extra element in laravel collection如何在 laravel 集合中添加额外的元素
【发布时间】:2017-12-21 19:32:22
【问题描述】:

我想知道如何在 laravel 集合中添加额外的列,从数据库返回。例如。

用户模型 用户->id 用户->名称

预订模式 预订->user_id 预订->id

现在

$users = User::all();
$user_reservation = Reservation::all();

    foreach ($users as $user)
    {
        foreach ($user_reservation as $ur) 
        {
            if ($user->id == $ur->user_id) 
            {
            //Add extra column in to the users model
            }
        }
    }

【问题讨论】:

    标签: mysql laravel-5 laravel-collection


    【解决方案1】:

    $user->push(['extra_column' => $value]);

    【讨论】:

      【解决方案2】:

      Laravel 有一个名为 $appends 的访问器。如何使用它

      在要添加自定义集合的模型中定义 $append。在我的情况下用户模型

          class User extends Model{
      
          protected $appends = ['user_eservation'];
      
          public function getUserReservations($id)
          {
              return User::where('id', $id)->first();
          }
      
          public function getUserReservationAttribute()
          {
              return $this->getUserReservations(Auth::user()->id);
          }
      }
      

      现在您可以通过调用getUserReservatoin函数来调用数据库中不可用的自定义属性。

      例如

      $users = 用户::all(); $user_reservation = 预订::all();

      foreach ($users as $user)
      {
          foreach ($user_reservation as $ur) 
          {
              if ($user->id == $ur->user_id) 
              {
              $user->getUserReservations();
              }
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2016-02-23
        • 2023-03-28
        • 1970-01-01
        • 1970-01-01
        • 2022-12-18
        • 1970-01-01
        • 2017-04-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多