zoukankan      html  css  js  c++  java
  • laravel笔记8 产品管理模块 关联模型

    关联模型主要关系

    一对一

    一对多

    多对一(反向)

    多对多

    1.主键是能确定一条记录的唯一标识,比如,一条记录包括身份正号,姓名,年龄。

    身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。 
    2.外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。

    比如,A表中的一个字段,是B表的主键,那他就可以是A表的外键。

    二、  主键、外键和索引的区别 

    主键、外键和索引的区别?

    主键

    外键

    索引

    定义:

    唯一标识一条记录,不能有重复的,不允许为空

    表的外键是另一表的主键, 外键可以有重复的, 可以是空值

    该字段没有重复值,但可以有一个空值

    作用:

    用来保证数据完整性

    用来和其他表建立联系用的

    是提高查询排序的速度

    个数:

    主键只能有一个

    一个表可以有多个外键

    一个表可以有多个惟一索引

    问题:在产品列表里面显示分类的名称,而不是id

    ID标题所属分类浏览次数发布时间操作
    3 阮阮阮阮阮 1 44 2020-08-10 08:46:00  

    打开产品模型Product.php

    class Product extends Model
    {
    public function category(){

    //产品和分类是反向多对一的关系 产品属于分类 参数1是分类的模型 cid是外键 还可以有第三个参数 主键
    return $this->belongsTo('AppCategory','cid');
    }
    }
    这样产品模型和分类模型就关联上了,可以去ProductController控制器验证一下
    public function index()
    {
    $list = Product::orderby('created_at','Desc')->OrderBy('id','Desc')->paginate(10);

    // foreach ($list as $item){
    //这里会调用数据模型product.php里面的category方法,->name打印分类
    // dump($item->category->name);
    // }die;
    return view('admin.product.index')->with('list',$list);
    }
    然后在blade模板里面
     <tr>
    <th class="text-center" style='60px;'> ID</th>
    <th class="text-center">标题</th>
    <th class="text-center" style='120px'>所属分类</th>
    <th class="text-center" style='120px'>浏览次数</th>
    <th class="text-center" style='150px'>发布时间</th>
    <th class="text-center" style=" 150px;">操作</th>
    </tr>
    </thead>
    <tbody>
    @foreach ($list as $item)

    <tr>
    <td class="text-center">{{$item->id}}</td>
    <td class=>{{$item->title}}</td>
    <td class="text-center">{{$item->category->name}}</td>
    <td class="text-center">{{$item->views}}</td>
    <td class="text-center">{{$item->created_at}}</td>
    最后效果
    ID标题所属分类浏览次数发布时间操作
    3 阮阮阮阮阮 php基础 44 2020-08-10 08:46:00  
     
     
  • 相关阅读:
    spock和junit测试报告
    docker复制
    Linux清空文件
    docker run 参数
    C# 线程手册 第三章 使用线程 实现一个数据库连接池(实战篇)
    反射入门
    反射动态调用、实例化窗体的方法
    创建业务逻辑层
    利用C#的反射机制动态调用DLL类库
    C#.Net 持久化对象为XML文件
  • 原文地址:https://www.cnblogs.com/fightforcoder/p/13471108.html
Copyright © 2011-2022 走看看