Laravel-通过模型处理性别

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)

@endforeach

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

在sex()方法里改:

$arr = [
    self::SEX_UN => '未知',
    self::SEX_BOY => '男的',
    self::SEX_GIRL => '女的',
];

你可能感兴趣的:(laravel)