laravel实现Model的setAttribute、getAttribute、scopeQuery方法


首先要定义一个Model

1.getAttribute的实现

请getFooAttribute在模型上创建一个方法,其中Foo包含您要访问的列的“studly”外壳名称。在这个例子中,我们将为first_name属性定义一个访问器。尝试检索sex属性值时,Eloquent会自动调用访问者:

查询出来模型以后获取sex,将是男或者女或者未知

$user = App\User::find(1);
$sex = $user->sex;
dd($sex); // 男

2.setAttribute的实现

请getFooAttribute在模型上创建一个方法,其中Foo包含您要访问的列的“studly”外壳名称。在这个例子中,我们将为first_name属性定义一个访问器。尝试检索sex属性值时,Eloquent会自动调用访问者:

attributes['sex'] = $sex;
    }
}

查询出来模型以后获取sex,将是男或者女或者未知

$user = App\User::find(1);
$user->sex = '我是sex';
dd($user->sex);   // 我是sex

3.scopeQuery的实现

本地范围允许您定义可在整个应用程序中轻松重用的常见约束集。例如,您可能需要经常检索所有被视为“受欢迎”的用户。要定义范围,请使用Eloquent模型方法作为前缀scope。范围应始终返回查询构建器实例:

where('sex', 1);
    }
}

定义后,可以在查询模型时调用该方法。但是,scope调用方法时不应包含前缀。您甚至可以将调用链接到各种范围,如:

$users = App\User::sex()->orderBy('created_at')->get();

纯原创,希望可以对大家有帮助,如有疑问,欢迎评论

原文地址


文章作者: WXiangQian
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 WXiangQian !
 上一篇
laravel的生命周期 laravel的生命周期
世间万物皆有生命周期,当我们使用任何工具时都需要理解它的工作原理,那么用起来就会得心应手,应用开发也是如此。理解了它的原理,那么使用起来就会游刃有余。 在了解 Laravel 的生命周期前,我们先回顾一下PHP 的生命周期。 PHP 的
2019-10-08
下一篇 
laravel中scope的用法以及技巧 laravel中scope的用法以及技巧
laravel中scope的用法以及技巧? laravel中的scope作用域 laravel中在模板中处理(属于不属于)的数据(增删改查),引入了scope来处理 也就是在模板定义方法中,加上前缀scope。 简言之,Laravel中模型
2019-09-19
  目录