微信扫一扫打赏支持

legend3---12、DB::table('user_questions')和UserQuestion查询的结果的格式不一样

legend3---12、DB::table('user_questions')和UserQuestion查询的结果的格式不一样

一、总结

一句话总结:

推荐使用模型查找的方式,可以直接数组方式访问:两种方式得到的数据是一样的,数据的格式不一样

laravel中用模型(DB::table('user_questions')->where('uq_collected',1))和用普通数据库查询(UserQuestion::where('uq_u_id',$u_id))到的结构的数据格式是不一样的

 

 

1、simplePaginate()的作用是什么:$user = DB::table('users')->simplePaginate(15)?

只需要简单的显示“上一页”和“下一页”链接

如果你只需要简单的显示“上一页”和“下一页”链接,你可以选择使用 simplePaginate 方法来执行一个有效的查询。这对于一些大型的数据库在视图中不需要显示每一页的链接时非常有效:

 

2、因为数据库查询的隔断(或者页面需要分页的情况很多),不方便直接分页,那么合理的操作是什么?

手动分页:才用ajax+vue的方式:就是麻烦了点

 

3、向页面传递json数据的时候,要用{!! $name !!},而不能用{{ }}?

因为Blade {{ }} 语句会自动调用 PHP 的 htmlspecialchars 函数防止 XSS 攻击
{{--window.question_list={{json_encode($question_list)}};--}}
window.question_list={!! json_encode($question_list) !!};

laravel
显示未转义数据
默认情况下,Blade {{ }} 语句会自动调用 PHP 的 htmlspecialchars 函数防止 XSS 攻击。不想转义的话,可以使用以下语法:

Hello, {!! $name !!}.

 

 

4、json数据可以以数组的方式访问(用数组的方式可以完成键的拼接)?

template v-for="n in 15" v-if="question['bq_1_keyword'+n].length>0"

 

5、多数据也可以考虑不用分页,ajax动态加载就好了?

像很多都是这样,下拉或者上拉就出新的数据

 

6、timeline根据不同日期变色如何实现?

先定义好样式的class,比如timeline_color_1,直接到7,比如如果是周二就用timeline_color_2即可

 

7、评论的回复样式如何做?

回复的评论的样式还是要比最父级评论那条要更加小一点

 

8、收藏题目的时间轴逻辑如何实现?

(可以先排序)按照题目收藏时间戳,获取那天的开始时间和结束时间,将那一天收藏的题目全部找出来,然后每天的收藏题目按照收藏时间排序就好了

 

9、用户正在学习的课程 的逻辑如何实现?

就是只要用户点开一个课程的一个视频,那么就算他在学习这个课程

 

10、用户完成的课程 的逻辑如何实现?

用户完成了课程中视频的50%,并且完成了课程的最后一个视频

 

 

 

二、内容在总结中

1、laravel中用模型(DB::table('user_questions')->where('uq_collected',1))和用普通数据库查询(UserQuestion::where('uq_u_id',$u_id))到的结构的数据格式是不一样的

1、用模型查找

用模型查找
        $questions=UserQuestion::where('uq_u_id',$u_id)->where('uq_collected',1)->select('blog_questions.*')
            ->join('blog_questions', 'user_questions.uq_q_id', '=', 'blog_questions.bq_id')
            ->get();

 

结果

Collection {#525 ▼
  #items: array:2 [▼
    0 => UserQuestion {#526 ▼
      #primaryKey: "uq_id"
      #guarded: []
      #connection: "mysql"
      #table: "user_questions"
      #keyType: "int"
      +incrementing: true
      #with: []
      #withCount: []
      #perPage: 15
      +exists: true
      +wasRecentlyCreated: false
      #attributes: array:28 [▼
        "bq_id" => 128
        "bq_b_id" => 6
        "bq_stem" => "5、《超级重要》娱乐的时间看学习视频?"
        "bq_stem_info" => ""
        "bq_answer_keywords" => "这甚至是一个可以堪比legend2神器的习惯__f_br__"
        "bq_answer" => """
          
          <h5>这甚至是一个可以堪比legend2神器的习惯</h5>
          <p><br /><br />《超级重要》---能做感悟总结的感悟<br />这样学习效果非常非常好,而且持续时间很长<br />这是我能不能崛起的依据<br />这样我才能提升<br />这样不仅学了,而且给了我很好的编程环境,不断接 ▶
          """
        "bq_answer_clue" => """
          
          
          <p><br /><br />《超级重要》---能做感悟总结的感悟<br />这样学习效果非常非常好,而且持续时间很长<br />这是我能不能崛起的依据<br />这样我才能提升<br />这样不仅学了,而且给了我很好的编程环境,不断接 ▶
          """
        "bq_keywords_num" => 1
        "bq_type" => 0
        "bq_blog_question_num" => 6
        "bq_collect_num" => 0
        "bq_1_keyword1" => "这甚至是一个可以堪比legend2神器的习惯"
        "bq_1_keyword2" => ""
        "bq_1_keyword3" => ""
        "bq_1_keyword4" => ""
        "bq_1_keyword5" => ""
        "bq_1_keyword6" => ""
        "bq_1_keyword7" => ""
        "bq_1_keyword8" => ""
        "bq_1_keyword9" => ""
        "bq_1_keyword10" => ""
        "bq_1_keyword11" => ""
        "bq_1_keyword12" => ""
        "bq_1_keyword13" => ""
        "bq_1_keyword14" => ""
        "bq_1_keyword15" => ""
        "created_at" => null
        "updated_at" => null
      ]
      #original: array:28 [▶]
      #changes: []
      #casts: []
      #dates: []
      #dateFormat: null
      #appends: []
      #dispatchesEvents: []
      #observables: []
      #relations: []
      #touches: []
      +timestamps: true
      #hidden: []
      #visible: []
      #fillable: []
    }
    1 => UserQuestion {#527 ▶}
  ]
}

 

 

2、 普通数据库方式查找

普通数据库方式查找

$questions=DB::table('user_questions')->where('uq_u_id',$u_id)->where('uq_collected',1)->select('blog_questions.*')
            ->join('blog_questions', 'user_questions.uq_q_id', '=', 'blog_questions.bq_id')
            ->get();

 

结果

结果

Collection {#448 ▼
  #items: array:2 [▼
    0 => {#452+"bq_id": 128
      +"bq_b_id": 6
      +"bq_stem": "5、《超级重要》娱乐的时间看学习视频?"
      +"bq_stem_info": ""
      +"bq_answer_keywords": "这甚至是一个可以堪比legend2神器的习惯__f_br__"
      +"bq_answer": """
        
        <h5>这甚至是一个可以堪比legend2神器的习惯</h5>
        <p><br /><br />《超级重要》---能做感悟总结的感悟<br />这样学习效果非常非常好,而且持续时间很长<br />这是我能不能崛起的依据<br />这样我才能提升<br />这样不仅学了,而且给了我很好的编程环境,不断接 ▶
        """
      +"bq_answer_clue": """
        
        
        <p><br /><br />《超级重要》---能做感悟总结的感悟<br />这样学习效果非常非常好,而且持续时间很长<br />这是我能不能崛起的依据<br />这样我才能提升<br />这样不仅学了,而且给了我很好的编程环境,不断接 ▶
        """
      +"bq_keywords_num": 1
      +"bq_type": 0
      +"bq_blog_question_num": 6
      +"bq_collect_num": 0
      +"bq_1_keyword1": "这甚至是一个可以堪比legend2神器的习惯"
      +"bq_1_keyword2": ""
      +"bq_1_keyword3": ""
      +"bq_1_keyword4": ""
      +"bq_1_keyword5": ""
      +"bq_1_keyword6": ""
      +"bq_1_keyword7": ""
      +"bq_1_keyword8": ""
      +"bq_1_keyword9": ""
      +"bq_1_keyword10": ""
      +"bq_1_keyword11": ""
      +"bq_1_keyword12": ""
      +"bq_1_keyword13": ""
      +"bq_1_keyword14": ""
      +"bq_1_keyword15": ""
      +"created_at": null
      +"updated_at": null
    }
    1 => {#488 ▶}
  ]
}

 

结果是一样的,但是结果的数据格式不一样,普通数据库方式查找的中间少了一层

 

 

 

 

 
posted @ 2019-10-22 12:09  范仁义  阅读(267)  评论(2编辑  收藏  举报