Классическая ситуация, когда App\Customer
имеет много App\User
Customer.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Customer extends Model
{
public function users()
{
return $this->hasMany('App\User');
}
public function getUserCountAttribute()
{
return $this->users->count();
}
}
Служа данными как json через API, я использую
Customer::orderBy($order_by, $order_direction)->paginate(10);
Например, получение данных (фиктивные данные)
{
"id": 34,
"name": "Angelita Bailey",
"created_at": "2019-05-07 15:49:47",
"updated_at": "2019-05-07 15:49:47",
"deleted_at": null
},
Если я использую static добавления ...
class Customer extends Model
{
public $appends = [ 'userCount' ];
..
}
Я получил не только userCount, но также полный массив из users
отношений! Я не хочу этого ...
{
"id": 12,
"name": "Carter Osinski",
"created_at": "2019-05-07 15:49:47",
"updated_at": "2019-05-07 15:49:47",
"deleted_at": null,
"userCount": 1,
"users": [
{
"id": 25,
"name": "ipurdy",
"email": "schultz.joelle@example.com",
"email_verified_at": null,
"role": "CUSTOMER",
"customer_id": 12,
"created_at": "2019-05-07 15:49:49",
"updated_at": "2019-05-07 15:49:49",
"deleted_at": null
}
]
},
Вопрос
Почему это происходит?