如何在 laravel 集合中添加额外元素

how to add extra element in laravel collection

我想知道如何在 laravel 集合中添加额外的列,return 来自数据库。例如。

用户模型 用户->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
            }
        }
    }

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

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 函数来调用数据库中不可用的自定义属性。

例如

$用户=User::all(); $user_reservation = Reservation::all();

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