legend3---lavarel常用操作代码2

legend3---lavarel常用操作代码2

一、总结

一句话总结:

对于王思cong被执法人的感悟:失意时 莫心伤,得意时 莫膨胀

1、lavarel自动事务?

DB::transaction方法里面是闭包,参数用use传进去
DB::transaction(function () use ($request,$lesson) {
      //dd($request->toArray());
      $lesson['l_title']=$request['l_title'];
      $lesson['l_introduce']=$request['l_introduce'];
      $lesson['l_preview']=$request['l_preview'];
      $lesson['l_is_commend']=$request['l_is_commend'];
      $lesson['l_is_hot']=$request['l_is_hot'];
      $lesson['l_click']=$request['l_click'];
      $lesson->save();
      //dd($lesson['l_id']);
      //dd($lesson->toArray());

      //2、插入标签课程数据--关系表
      $tags=$request['tags'];
      foreach ($tags as $tag){
          $tag_lesson=[];
          $tag_lesson['tl_t_id']=$tag;
          //$tag_lesson['tl_l_id']=$lesson['l_id'];
          //TagAndLesson::create($tag_lesson);
          //dd($tag_lesson);
          $lesson->hasManyLessonTags()->create($tag_lesson);

      }


      //videos数据过来的时候是json数据,true表示转成数组而非对象
      $videos=json_decode($request['videos'],true);
      //dd($videos);
      foreach ($videos as $video){
          unset($video['v_id']);
          $lesson->videos()->create($video);
//            $lesson->videos()->create([
//                'title'=>$video['title'],
//                'path'=>$video['path'],
//            ]);
      }
  });

 

2、使用Seeder创建数据库数据?

· 生成seeder文件:php artisan make:seeder UsersTableSeeder
· 运行seeder文件:php artisan db:seed --class=UsersTableSeeder
· faker本地化:$faker=FakerFactory::create('zh_CN');
<?php

use IlluminateDatabaseSeeder;

class UsersTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        //产生faker实例
        $faker=FakerFactory::create('zh_CN');
        //循环生成数据
        static $password;
        $data=[];
        for ($i=0;$i<10;$i++){
            $data[]=[
                'phone' => $faker->phoneNumber,
                'password' => $password ?: $password=bcrypt('123456'), // secret
                'email' => $faker->email,
                'name' => $faker->name,
                'created_at' => date('Y-m-d H:i:s',time()),
                'updated_at' => date('Y-m-d H:i:s',time()),
            ];
        }
        DB::table('users')->insert($data);
    }
}

3、lavarel变量输出报错情况?

@if(isset($d->blog->b_title)) {{$d->blog->b_title}} @endif

4、ajax?

主要传递回来valid和message两个变量,一个显示返回码,一个显示返回信息

视图端

//课程的点赞收藏操作
        $('.fa_like').click(function () {
            let l_id=$(this).attr('l_id');
            let _this=$(this);
            //console.log(l_id);
            $.post("/like_lesson", {'l_id':l_id,'_token':'{{csrf_token()}}'} ,function (data) {
                console.log(data);
                if(parseInt(data.valid)==1){
                    _this.hide();
                    _this.parent().find('.fa_like_no').show();
                    layer_alert_success(data.message);
                }else{
                    layer_alert_fail(data.message);
                }
            });
        });

控制器端

    //点赞课程
    public function like_lesson(Request $request){
        $back_data=[];
        $back_data['valid']=0;//表示连接失败
        $back_data['message']='';
        //dd($request->all());
        $ll_l_id=$request->input('l_id');
        //获取登录的用户id
        $ll_u_id=Auth::guard('user')->user()->id;
        $data=[];
        $data['ll_l_id']=$ll_l_id;
        $data['ll_u_id']=$ll_u_id;
        $ans=LikeLesson::insert($data);
        if($ans){
            //验证码错误
            $back_data['valid']=1;//表示验证码错误
            $back_data['message']='点赞成功!';
            return $back_data;
        }else{
            $back_data['valid']=0;//表示手机验证码发送成功
            $back_data['message']='点赞失败!';
        }
        return $back_data;
    }

5、vue将时间戳转成时间?

methods里面加一个方法即可
<script>
    let vue_{{$comment_list_id}}=new Vue({
        el: '#comment_list_{{$comment_list_id}}',
        data: {
            comment_list: window.{{$comment_list_id}},
        },
        methods:{
            ts_to_time:function(ts){
                return timestampToTime(ts*1000);
            }
        }
    })
</script>

6、转码和解码?

转码:$blog['b_summary']=addslashes(htmlspecialchars($blogSummary));
解码:$summary=stripslashes(htmlspecialchars_decode($perBlogData['b_summary']));

7、自定义排序规则 排序?

usort($question_list, array('AppModelAdminChooseQuestionTimelineGroupByTimeline',"cmp_question_collected"));
//1、可以先对数组按照时间戳来由大到小排序(因为优先显示近期的,)
usort($question_list, array('AppModelAdminChooseQuestionTimelineGroupByTimeline',"cmp_question_collected"));



//1、按照题目的收藏时间由大到小排序
public static function cmp_question_collected($a, $b)
{
  if ($a['uq_collected_time'] == $b['uq_collected_time']) {
      return ($a['uq_id'] > $b['uq_id']) ? -1 : 1;
  }
  return ($a['uq_collected_time'] > $b['uq_collected_time']) ? -1 : 1;
}

8、vue判断一个数是否在数组里面?

["a","b","c"].indexOf("a")
<script>
    let vue_{{$comment_list_id}}=new Vue({
        el: '#comment_list_{{$comment_list_id}}',
        data: {
            comment_list: window.{{$comment_list_id}},
            lesson_comment_ids:window.lesson_comment_ids,
        },
        methods:{
            ts_to_time:function(ts){
                return timestampToTime(ts*1000);
            },
            like_comment:function (cl_id) {
                return 1+parseInt(this.lesson_comment_ids.indexOf(cl_id));
            }
        }
    })
    //console.log(vue_{{$comment_list_id}}.comment_list);
    console.log(vue_{{$comment_list_id}}.lesson_comment_ids);
</script>

9、检测windows宽度改变函数?

$(window).on('resize', function() { 代码 }).resize();
  {{--小屏幕端的时候去除 内容中container 的左右缩进--}}
  <script>
      function remove_container() {
          if($(window).width()>720){
              $('#content_container').addClass('container');
          }else{
              $('#content_container').removeClass('container');
          }
          $('#content_wrapper').show();
      }
      remove_container();



      $(function () {
          $(window).on('resize', function() {
              //console.log("宽度改变了!");
              //console.log($(window).width());
              remove_container();
          }).resize();
          // window.onresize=function(){
          //     //console.log("宽度改变了!");
          //     remove_container();
          // }
      });
  </script>

10、post请求处理表单信息?

获取form的数据:$('#do_update_info_form').serializeArray();

视图端

{{--post请求提交表单信息--}}
<script>
  function submit_update_info(){
      var data = {};
      var t = $('#do_update_info_form').serializeArray();
      $.each(t, function() {
          data [this.name] = this.value;
      });
      //console.log(JSON.stringify(data ));

      $.post("/do_update_info", {'data':data,'_token':'{{csrf_token()}}'} ,function (data) {
          //console.log(data);
          if(parseInt(data.valid)==1){
              layer_alert_success_mobile(data.message);
              //操作成功,两秒后自动跳转到XX界面
        //layer_mobile_success_jump(data.message,3,'个人中心','{{url('/my')}}');
}else{ layer_alert_fail_mobile(data.message); } }); } </script>

控制器端

public function do_update_info(Request $request){
  $back_data=[];
  $back_data['valid']=0;//表示连接失败
  $back_data['message']='';

  //dd($request->all());
  $data=$request->input('data');
  //dd($data);
  $name_length=mb_strlen(trim($data['u_name']),'utf8');
  if($name_length>10){
      $back_data['valid']=0;
      $back_data['message']='昵称的字符数不能超过10个';
      return $back_data;
  }
  $motto_length=mb_strlen(trim($data['u_motto']),'utf8');
  if($motto_length>100){
      $back_data['valid']=0;
      $back_data['message']='个性签名 的字符数不能超过100个';
      return $back_data;
  }
  if($name_length) $name=$data['u_name'];
  if($motto_length) $motto=$data['u_motto'];
  $picture=$data['u_picture'];
  $u_id=Auth::guard('user')->user()->id;
  $user=Auth::guard('user')->user();

  //修改用户信息
  if(isset($name))
  $user->name=$name;
  if(isset($motto))
  $user->motto=$motto;
  $user->picture=$picture;
  $ans=$user->save();

  if($ans){
      $back_data['valid']=1;
      $back_data['message']='操作成功!';
      return $back_data;
  }else{
      $back_data['valid']=0;
      $back_data['message']='操作失败!';
  }
  return $back_data;

  //dd($user);
}

二、内容在总结中

 
原文地址:https://www.cnblogs.com/Renyi-Fan/p/11605489.html