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'); }