toplan / laravel-sms

:iphone::heavy_check_mark:A phone number validation solution based on laravel
MIT License
838 stars 174 forks source link

发送短信验证规则提示问题 #20

Closed xyezir closed 8 years ago

xyezir commented 9 years ago

$vars['passed'] = false; if ($rule == 'check_mobile_unique') { $vars['msg'] = '该手机号码已存在'; } elseif ($rule == 'check_mobile_exists') { $vars['msg'] = '不存在此手机号码'; } else { $vars['msg'] = '抱歉,你的手机号未通过合法性检测'; } $vars['type'] = $rule;

如果新增一个rule,无法定制错误提醒,都会进到else中提示手机号未通过合法性监测,比如增加一个后台限制60秒只接受一条发送的规则防止机器人刷短信。提示无法更改。建议从lang文件中取提示。根据rule的namespace

toplan commented 9 years ago

是的,你说得有道理,无论从扩展性还是从i18n的角度来看,从lang文价读取提示,是最好的,当然也可以根据type值在浏览器端用js自定义提示内容。因为无论是什么检测规则,服务器都会返回type值。

toplan commented 9 years ago

浏览器端可以读取到服务器返回的检测规则类型,是第二个参数

//定义服务器有消息返回时如何展示,默认为alert
alertMsg   :  function (msg, type) {
    alert(msg);
}
xyezir commented 9 years ago

在js中确实可以拿到type,但是这样还是有一个问题存在,就是如果我的js是分离式的,比如通过script src引入一个js文件,这样无法使用laravel自带的i18n的一些函数,就会比较麻烦。拿到type也没有多大作用。需要把send sms的js代码写在页面上跟laravel混编才可以调用lang的东西。或者是实现先在input hidden中去到type对应的lang,这样感觉总是显得不够优雅。所以个人觉得优先从lang读取会更合适写。lang中没有。再取default

toplan commented 9 years ago

恩,是的,这个我已加入todo list,最近在升级laraval-sms到新版本,会有比较大的改进和变动,该优先级应该会靠后点点

toplan commented 8 years ago

@xyezir 你好,v2.0已经release,解决了该issue,感谢你的关注和建议。