500miles

500miles

这家伙有点懒,还没写个性签名!

  • 财富值2470
  • 威望值220
  • 总积分4940

个人信息

  • 回复了 的回答

    如果需要 姓名和身份证 严格匹配, 需要从公安系统验证, 一般公司是没这个资质的...

    幸好... 有资格的服务商 提供api, 调用一次 大概三块钱左右;

    如果不用严格匹配... 按身份证数字规则做验证即可. 大概规则 这里给你贴一下

    1. 前6位为行政区划分代码 ( 网上很多数据库数据, 你可以下载来作验证 )

    2. 第7位至14位为出生日期 (使用php函数验证是否是正确日期即可)

    3. 第15位至17位为顺序码 ( 无法验证 )

    4. 第18位为校验码。 (具体验证规则 百度 "身份证最后一位")

    你可以根据以上信息, 进行选择性进行验证

    public function rules() {
        return [
            ...... // other rules
            ['id', 'validateId'],
        ];
    }
    
    public function validateId($attribute, $params) {
        if ($this->hasErrors()) {
            return false;
        }
        if (验证失败) {
            $this->addError('id', 'error tips');
            return false;
        }
        return true;
    }
    
  • 如果需要 姓名和身份证 严格匹配, 需要从公安系统验证, 一般公司是没这个资质的...

    幸好... 有资格的服务商 提供api, 调用一次 大概三块钱左右;

    如果不用严格匹配... 按身份证数字规则做验证即可. 大概规则 这里给你贴一下

    1. 前6位为行政区划分代码 ( 网上很多数据库数据, 你可以下载来作验证 )

    2. 第7位至14位为出生日期 (使用php函数验证是否是正确日期即可)

    3. 第15位至17位为顺序码 ( 无法验证 )

    4. 第18位为校验码。 (具体验证规则 百度 "身份证最后一位")

    你可以根据以上信息, 进行选择性进行验证

  • 2015-11-19 已签到
    连续签到1天,获得了5个金钱
  • 方案一

    yii\i18n\FormatternullDisplay 属性设置为你想要的.

    这将会使得 所有依赖 yii\i18n\Formatter 的地方受到影响(仅值为null时)

    方案二

    如果不想扩大影响面, 在表格渲染时, 判断并修改之.

    .........
    
    'columns' => [
    
        ...... // 别的行
    
        [
            'class' => 'yii\grid\DataColumn',
            'attribute' => 'name',//要修改的行, 比如name
            'value' => function($data){
                   if (null === $data->name) {
                       return 'play your imagination here';
                   }
                   return $data->name;
             }
        ],
        ...... //别的行
    ],
    ..........
    
  • 首先, 你理解的没错儿.

    只不过, 大部分业务逻辑中 ...
    如果update, 通常是取出数据, 然后做一些操作, 最后修改数据后再save(此时就是update)
    此种情况下, 如果按条件取不到数据, 往往意味着 : 哪里出了问题?, 404?,

    于是抛出异常或者其他处理措施......

    你想要的 其实就是这种情况的处理措施之一 : 取不到数据, 我不抛异常, 不给404 我直接新建一条..

    最后 感觉这样不够优雅.
    你可以自己加一个方法来扩充ActiveRecord. 比如 : updateOrInsert()
    这样似乎会友好, 优雅一点

  • 回复了 的回答

    当前命名空间下没有Exception, 需要指明命名空间..

    改成这样 : ... catch(\Exception $e) ..., 加一个反斜杠在前面.

    另外多嘴一句, mysql系列扩展函数不是早就不建议用了吗?

    PDO 是个好选择 或者 mysqli 系列

    如果已经得到解决, 请把问题标记 已解决. thx

  • 回复了 的回答

    显式指定一下 Responseformat , 否则默认为html

    $response = Yii::$app->getResponse();
    $response->format = $response::FORMAT_RAW;
    

    然后再加上你那些 $response->getHeaders()->set('Content-Type', 'image/png');之类的头信息

    请问, 这样凑效吗? 有帮到您吗?

  • 当前命名空间下没有Exception, 需要指明命名空间..

    改成这样 : ... catch(\Exception $e) ..., 加一个反斜杠在前面.

    另外多嘴一句, mysql系列扩展函数不是早就不建议用了吗?

    PDO 是个好选择 或者 mysqli 系列

  • 2015-11-17 已签到
    连续签到79天,获得了20个金钱
  • 服务端应对xss, 两个关键节点 : 输入 和 输出.

    理论上讲, 任何一个关卡把严了, 就没问题. (这里只针对xss, 不考虑其他)

    不过还是都处理一下吧. 毕竟存储的数据 可能不止你一个人用, 万一队友觉得你在存储前处理了呢...

    具体怎么处理, Yii里面提供了很好的工具. HtmlHelperHtmlPurifier.

    切记 : 不要试图自己去过滤, 使用类似上面提到的这些第三方工具.

总监 等级规则
4940/5000
资料完整度
30/100
用户活跃度
0/100

Ta的关注

0

Ta的粉丝

15

Ta的访客

42