You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Eloquent模型字符串属性转小写可行性咨询

在Laravel Eloquent中实现字符串属性自动转小写

Laravel 10.x官方文档的「Eloquent修改器与属性转换」章节里,并没有提供内置的字符串转小写属性转换类型,但你可以通过两种简单方式实现需求:

方法一:用访问器和修改器处理单个属性

  • 定义修改器,确保属性存入数据库时自动转为小写:
public function setYourAttributeAttribute($value)
{
    $this->attributes['your_attribute'] = strtolower($value);
}
  • 如果需要从数据库读取时也强制小写(可选),再定义访问器:
public function getYourAttributeAttribute($value)
{
    return strtolower($value);
}

提示:把YourAttribute替换成你实际的属性名,记得遵循Laravel的驼峰命名规则。

方法二:自定义转换类实现复用

如果多个模型都需要字符串转小写的功能,自定义转换类更高效:

  1. 新建转换文件 app/Casts/Lowercase.php,内容如下:
<?php

namespace App\Casts;

use Illuminate\Contracts\Database\Eloquent\CastsAttributes;

class Lowercase implements CastsAttributes
{
    public function get($model, $key, $value, $attributes)
    {
        return strtolower($value);
    }

    public function set($model, $key, $value, $attributes)
    {
        return strtolower($value);
    }
}
  1. 在模型的$casts数组中使用这个自定义转换:
protected $casts = [
    'your_attribute' => \App\Casts\Lowercase::class,
];

两种方式都能满足需求:修改器适合单个模型的单一属性场景,自定义转换类则更适合多模型复用的情况。

内容的提问来源于stack exchange,提问作者gvanto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 12:02:34