Laravel $附加

时间:2017-02-09 01:00:42

标签: php laravel laravel-5 eloquent

我试图忽略我的用户模型中的所有 $ appends 一次。每次我的应用程序都需要所有这些,但有一次我不需要它,这会降低我的查询性能。

我需要正确的方法来做到这一点。对于这个解决方案,我已经搜索了一周,没有。

class User extends Authenticatable
{
    use Notifiable,
        SoftDeletes,
        FilterTrait,
        HasRoles;


    public $appends = [
       'fullName',
       'name',
       'since',
       'newCustomer',
       'image_URL',
       'th_roles'
   ];
...

1 个答案:

答案 0 :(得分:3)

$ appends 变量中列出的值仅在您的模型转换为数组时附加,例如当你从控制器返回它时。为了避免这种情况,您应该在您返回的所有对象上清除 $ appends 变量,例如:

public function someController() {
  $user = User::find(1);
  $user->setAppends([]);

  return $user; //no values will be appended
}