我的理解是:因为tags是个数组,你要是加上min:3的话,那意思就成了验证标签必须为三个及以上了
没想到有这种用法,学习了
$result['a_sqmc'] = area_buss::select('a_sqmc')->where('a_sqbh', $result['a_sqbh'])->first()['a_sqmc']
貌似我也遇到过
不确定别人怎么做,我是把email和mobile放一个表里了,都默认null,在后台做个判断注册时两者必须有一个不为空,登陆的时候就取email和mobile两个字段匹配,任意一个匹配上就放行
@snail 好的,我研究一下文档,看看如何实现
@snail 多谢,1000条大概从150秒减少到58秒,我每一行代码都打印了一下耗费时间,问题出现在bcrypt()这个方法里,我是用的它加密原始密码,换成md5()方法后,从58秒缩短到2秒。
我现在困惑的地方在这里,我需要获得插入users表成功的id,然后把这些id再插入到中间表user_role表里,$this->insertGetId()方法可以获得id但只能一条一条插入,效率慢,$this->insert($data)方法返回不了id值
我目前的做法:先获取users表最大自增id,插入users后查询获得大于此自增ID的数据,然后插入到user_role里
$maxid = User::select('id')->orderBy('id', 'desc')->first()->id;
if($this->insert($data)){//插入用户表
$user_id = $this->select('id as user_id')->where('id', '>', $maxid)->get()->toArray();//获得成功插入的用户id
$result = DB::table('user_role')->insert($user_id);//插入用户角色表
}
要实现的功能:批量创建用户。
我目前的做法:foreach循环,在循环里把符合条件的用insertGetId方法插入用户表并获得用户id,然后把用户id再插入到用户角色表里。
目前遇到的问题:时间过长,一个foreach循环耗时大概0.1左右,单单100条数据就得10秒钟,别提成千上万条数据了。使用事务没有明显效果
DB::beginTransaction();
try{
foreach($excel as $k => $v){
$val = array();
//中间省略判断代码
$val['username'] = $v['name'];
//...
if($id = $this->insertGetId($val)){
if($role = DB::table('user_role')->insert(['user_id' => $id, 'role_id' => 3])){//3代表默认角色
}else{
$v[6] = '创建失败';
$err[] = $v;
User::destroy($id);
}
}else{
$v[6] = '创建失败';
$err[] = $v;
}
}
DB::commit();
} catch (Exception $ex) {
DB::rollBack();
}
我估计应该是思路性问题,本人菜鸟一个,大概laravel框架里有更好的方法我不知道而已
@JellyBool 非常感谢!之前all.js最后引入的,现在换成第一个引入后问题消失。(づ ̄ 3 ̄)づ
你好,根据教程学到使用Select2了,把所有js,css都引入进来了,但始终报错:
Uncaught TypeError: $(...).select2 is not a function
<script type="text/javascript">
$(function(){
$(".js-example-basic-multiple").select2({
placeholder: "添加标签"
});
});
</script>
请分析一下原因,谢谢!