后盾网lavarel视频项目---模型一对多关联简单实例
生活随笔
收集整理的這篇文章主要介紹了
后盾网lavarel视频项目---模型一对多关联简单实例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
后盾網lavarel視頻項目---模型一對多關聯簡單實例
一、總結
一句話總結:
在模型中定義一個方法來設置一對多關聯:return $this->hasMany(Video::class);
<?phpnamespace App\Model;use Illuminate\Database\Eloquent\Model;class Lesson extends Model {/*** 與視頻表模型的一對多關聯* @return \Illuminate\Database\Eloquent\Relations\HasMany*/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
<?phpnamespace App\Model;use Illuminate\Database\Eloquent\Model;class Video extends Model {protected $guarded=[]; }?
app/Model/Lesson.php
1 <?php 2 3 namespace App\Model; 4 5 use Illuminate\Database\Eloquent\Model; 6 7 class Lesson extends Model 8 { 9 /** 10 * 與視頻表模型的一對多關聯 11 * @return \Illuminate\Database\Eloquent\Relations\HasMany 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、結果
?
成功獲得需要的兩條數據
?
轉載于:https://www.cnblogs.com/Renyi-Fan/p/11546517.html
總結
以上是生活随笔為你收集整理的后盾网lavarel视频项目---模型一对多关联简单实例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1209F - Koala and No
- 下一篇: 黑马lavarel教程---3、数据库和