• legend3---6、legend3爬坑杂记


    legend3---6、legend3爬坑杂记

    一、总结

    一句话总结:

    学东西不做项目也学不到深处,其实也就是学了没理解透,

    1、lavarel中模型关联可以用的实质是?

    lavarel在数据库中插入数据之后,还从数据库返回了插入的那条数据,所以有我们需要的数据插入的id
    $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());
    
    结果
    array:9 [▼
      "l_title" => "aa"
      "l_introduce" => "aa"
      "l_preview" => "/images/nopic.jpg"
      "l_is_commend" => "0"
      "l_is_hot" => "0"
      "l_click" => "0"
      "updated_at" => "2019-09-28 14:04:26"
      "created_at" => "2019-09-28 14:04:26"
      "l_id" => 21
    ]

    2、lavarel中模型关联最大的作用是什么?

    精简代码,加快开发效率

    3、lavarel中的模型中的create方法的作用是什么?

    批量赋值,默认情况下使用模型插入数据的时候只能一个一个的赋值
    批量赋值
    你也可以使用 create 方法来保存新模型, 方法会返回模型实例。不过,在使用之前,你需要先在模型上指定 fillable 或 guarded 属性,因为所有的 Eloquent 模型在默认情况下都不能进行批量赋值。
    
    当我们设置好批量赋值的属性,就可以通过 create 方法插入新数据。 create 方法将返回已保存的模型实例:
    $flight = AppFlight::create(['name' => 'Flight 10']);

    4、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'],
    //            ]);
          }
      });

    5、lavarel中常驻session的有用信息有哪些?

    |||-begin

    array:6 [▼
      "nowControllerAction" => "LessonController.index"
      "_token" => "NMEDJcOEzZecOtscrKhgaxRtuXbprWGFxGcRz5JP"
      "_previous" => array:1 [▼
        "url" => "http://legend3.com/admin/lesson"
      ]
      "_flash" => array:2 [▼
        "old" => []
        "new" => []
      ]
      "login_admin_59ba36addc2b2f9401580f014c7f58ea4e30989d" => 1
      "PHPDEBUGBAR_STACK_DATA" => []
    ]

    |||-end

    _previous:上一个url
    _flash:闪存信息

    6、模型一对多关系:查找视频所属的课程的时候出现Call to a member function lesson() on string错误?

    模型关联的方法头应该是集合而不是字符串:所以{{$d['v_title']->lesson()->find(1)}}错误

    正确应该为:{{$d->lesson()->find(1)}}

    7、用一对多(反向)的时候,模型关系参数书写错误?

    真的可以仔细阅读文档,明确参数含义
    //视频属于课程
    public function lesson(){
      return $this->belongsTo('AppModelLesson', 'v_l_id','l_id');
    }

    8、在课程和视频的一对多中,如何通过视频获取对应课程的名称?

    直接动态属性而非方法的形式:{{$d->lesson->l_title}}

    9、lavarel视图中一行内的if怎么写?

    select中判断是否被选中:@if($video['v_l_id']==$l['l_id']) selected @endif

    10、Symfony Component HttpKernel Exception MethodNotAllowedHttpException 原因?

    一般是路由错误,比如修改操作的请求不是PUT方法:@method('PUT')

    11、模型使用update方式更新(不必用AR模型方式更新)?

    $result=Member::where('id','7')->update(['age'=>82']);

    二、内容在总结中

     
  • 相关阅读:
    Ubuntu 永久修改DNS
    三大主流MQ的组织结构
    nginx基本配置
    CentOS7安装RabbitMQ
    单个表上亿行数据的主键、索引设计,及分页查询
    [SQL]行列转换
    《团队协作的五大障碍》读后感
    【2021-09-26】面对困难是未来绝不后悔的事情
    【2021-09-25】摇摆不定反逼自己脚踏实地
    【一句日历】2021年10月
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/11605147.html
Copyright © 2020-2023  润新知