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

时间:2017-07-17 10:01:29

标签: mysql laravel-5 laravel-collection

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

用户模型 用户>编号 用户>名称

预订模式 Reservation-> USER_ID Reservation->编号

现在

$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
            }
        }
    }

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

Laravel有一个名为$ appends with Accessors的东西。如何使用

在要添加自定义集合的模型中定义$ 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 = User :: all(); $ user_reservation = Reservation :: all();

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