• 后盾网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、结果

    成功获得需要的两条数据

     
  • 相关阅读:
    Implementing Automation Collections
    PSP 2.0降级至1.5详细教程(转)
    Delphi 7 过期的问题
    Delphi读写COM复合文档用户自定义属性参考代码
    十大经典误会
    Office檔案格式(Office文件格式)
    将表格粘贴为Word可识别的格式
    对字符编码与Unicode,ISO 10646,UCS,UTF8,UTF16,GBK,GB2312的理解
    如何识别键盘左右的shift,Ctrl或Alt键
    SRT File Format
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/11546517.html
Copyright © 2020-2023  润新知