ljm5889

164 经验值

我的理解是:因为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>

请分析一下原因,谢谢!