zoukankan      html  css  js  c++  java
  • 后盾网lavarel视频项目---模型一对多关联简单实例

    后盾网lavarel视频项目---模型一对多关联简单实例

    一、总结

    一句话总结:

    在模型中定义一个方法来设置一对多关联:return $this->hasMany(Video::class);
    <?php
    
    namespace AppModel;
    
    use IlluminateDatabaseEloquentModel;
    
    class Lesson extends Model
    {
        /**
         * 与视频表模型的一对多关联
         * @return IlluminateDatabaseEloquentRelationsHasMany
         */
        public function videos(){
            return $this->hasMany(Video::class);
        }
    }

    1、控制器中怎么取设置了一对多的模型的数据?

    先找到lesson数据(Lesson::find(1)),然后找到一对多设置(->videos()),最后取数据(->get()):$d=Lesson::find(1)->videos()->get();
        public function create()
        {
            $d=Lesson::find(1)->videos()->get();
            dd($d->toArray());
            return view('admin.lesson.create');
        }

    2、toArray方法将集合数据转成数组?

     $d=Lesson::find(1)->videos()->get(); dd($d->toArray());
        public function create()
        {
            $d=Lesson::find(1)->videos()->get();
            dd($d->toArray());
            return view('admin.lesson.create');
        }

    二、模型一对多关联简单实例

    1、数据表

     lessons表中一条记录对应videos表中多条记录

     lessons表

     videos表

     

    2、模型

    app/Model/Video.php

    <?php
    
    namespace AppModel;
    
    use IlluminateDatabaseEloquentModel;
    
    class Video extends Model
    {
        protected $guarded=[];
    }

    app/Model/Lesson.php

     1 <?php
     2 
     3 namespace AppModel;
     4 
     5 use IlluminateDatabaseEloquentModel;
     6 
     7 class Lesson extends Model
     8 {
     9     /**
    10      * 与视频表模型的一对多关联
    11      * @return IlluminateDatabaseEloquentRelationsHasMany
    12      */
    13     public function videos(){
    14         return $this->hasMany(Video::class);
    15     }
    16 }

    第10行:一对多设置的核心代码

    lavarel参考手册位置:https://learnku.com/docs/laravel/5.7/eloquent-relationships/2295#one-to-many

    3、控制器

    app/Http/Controllers/Admin/LessonController.php

    1     public function create()
    2     {
    3         $d=Lesson::find(1)->videos()->get();
    4         dd($d->toArray());
    5         return view('admin.lesson.create');
    6     }

    第3行:videos方法是Lesson模型中定义的

    第4行:toArray方法将数据集转成数组

    4、结果

    成功获得需要的两条数据

     
  • 相关阅读:
    送股分红是怎么回事?
    基金申购费用计算
    msn 爬楼梯
    沪市证券交易费用
    OS X
    见到郎咸平:)
    Long long time_Blog更新了
    生~气:)
    突然想起去年的今天
    久久沉思以后
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/11546517.html
Copyright © 2011-2022 走看看