Laravel-通过模型处理性别

本文介绍了如何在 Laravel 的 Student 模型中定义常量来优雅地处理性别选项。通过使用常量,当需要更改性别表示时,只需修改一处即可。在控制器和视图中,代码得到简化,常量的使用使得 input 的值和 value 更易于维护。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Student模型中定义常量

class Student extends Model
{
    const SEX_UN   = 0; //未知
    const SEX_BOY  = 1; //男
    const SEX_GIRL = 2; //女
    protected $table = 'student';
    protected $fillable = ['name', 'age', 'sex'];
    public $timestamps = true;

    public function getDateFormat()
    {
        return time();    
    }

    public function asDatetime($val)
    {
        return $val;    
    } 
	//创建sex方法
    public function sex($ind = null)
    {
        $arr = [
            self::SEX_UN => '未知',
            self::SEX_BOY => '男的',
            self::SEX_GIRL => '女的',
        ];
        
        if($ind !== null) {
            return array_key_exists($ind, $arr) ? $arr[$ind] : $arr[self::SEX_UN];
        }	//这个函数很关键哦

        return $arr;
    }
}

定义常量好处就是:可以尽情的使用常量,如果这写东西改了,则需要改一个地方就可以了;

控制器中:

public function create(Request $request)
{
    $student = new Student();
	省略验证代码
	......
	...
    return view('student.create', [
        'student' => $student
    ]);
 }

视图中:

@foreach($student->sex() as $ind => $val)
<label class="radio-inline">
    <input type="radio" name="Student[sex]" value="{{ $ind }}"
    {{ old('Student.sex') == $ind ? "checked='checked'" : '' }}
    > {{ $val }}
</label>
@endforeach

简化了之前的代码(数据保持功能仍有效),直接修改常量就能就能改变input后面的值和value;

在sex()方法里改:

$arr = [
    self::SEX_UN => '未知',
    self::SEX_BOY => '男的',
    self::SEX_GIRL => '女的',
];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值