Laravel小项目之第6节 Laravel-通过模型处理性别

第6节 Laravel-通过模型处理性别

6.1 模型中创建处理性别的方法
6.2 模型方法在前台视图的遍历、调用

6.1 模型中创建处理性别的方法

目前在列表页的性别,显示的还是数字。所以,我们有必要显示成中文。

首先,在模型中创建一个 sex() 的方法。

\app\models\Student.php

<?php
namespace App\models;
use Illuminate\Database\Eloquent\Model;

class Student extends Model
{
	const SEX_UN = 2;
    const SEX_BOY = 1;
    const SEX_GIRL = 0;

    /**
     * 与模型相关的数据表
     */
    protected $table = "student";

    /**
     * 指定是否模型应该被戳记时间
     */
    public $timestamps = false;

    /**
     * 处理用户的性别,转换为中文
     *
     * @param     $ind    用户存储的性别数字编号
     * @return    string  对应的性别中文字符
     * @author    webjust [604854119@qq.com]
     */
    public function sex($ind = null)
    {
        $arr = array(
            self::SEX_GIRL => '女',
            self::SEX_BOY => '男',
            self::SEX_UN => '未知',
        );

        if($ind !== null)
        {
            return array_key_exists($ind, $arr) ? $arr[$ind] : $arr[self::SEX_UN];
        }
        return $arr;
    }
}

别忘了,既然要在模板中使用Student类,那就需要引入它。

在 \resources\views\student\create.blade.php 文件顶部加入如下代码:

<?php
use App\Models\Student;
$student = new Student();
?>

6.2 模型方法在前台视图的遍历、调用

修改视图 \resources\views\student\create.blade.php

<div class="form-group">
    <label class="col-sm-2 control-label">性别</label>
    <div class="col-sm-5">
        @foreach($student->sex() as $ind => $sex)
        <label class="radio-inline">
            <input type="radio"
            name="Student[sex]" {{ (isset(old('Student')['sex']) && old('Student')['sex'] == $ind) ? 'checked' : '' }}
            value="{{ $ind }}"> {{ $sex }}
        </label>
        @endforeach
    </div>
    <div class="col-sm-5">
        <p class="form-control-static text-danger">{{ $errors->first('Student.sex') }}</p>
    </div>
</div>

同理,我们在列表页首页也需要使用sex方法,因此也需要引入Student类。

在 \resources\views\student\index.blade.php 文件中,顶部写入:

<?php
use App\Models\Student;
$student = new Student();
?>

然后在视图文件中调用 sex() 方法,传递性别的值作为参数。

{{ $student->sex($student->sex) }}

显示效果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值