如何使用laravel中另一个表中的外键获取所需的列

Posted

技术标签:

【中文标题】如何使用laravel中另一个表中的外键获取所需的列【英文标题】:how to get desired column using foreign key from another table in laravel 【发布时间】:2021-02-23 05:57:45 【问题描述】:

所以有两个表:

products (model name: Product)
categories (model name: Category)

products 表包含列名称为 prd_cat_id,这是一个 foreign key,引用类别表中的 cat_id。每个product 都属于一个category

我想在它们之间建立关系,以便每当我想从products 表中获取数据时,也可以获取category 的名称。

产品型号和类别表:

class Product extends Model 
    use HasFactory;


class Category extends Model 
    use HasFactory;

categories(cat_id, cat_name, cat_desc, cat_image) 中有 4 列,但我只想将 cat_nameproduct 表的数据一起使用。

如何相应地获取数据?我想在刀片模板中输出结果。

【问题讨论】:

【参考方案1】:

加入另一个没有使用id的表。您需要指定密钥。

如果你有一对一的关系,那么你可以使用这个hasOne 关系

Product模型中获取类别数据,

return $this->hasOne('App\Models\Category', 'foreign_key', 'local_key');

更多信息,Laravel One to One Relationship

【讨论】:

其他表使用id,cat_id 您需要匹配prd_cat_id & cat_id 才能获取数据。正确的?所以分别在上述关系中指定这些键。有时会令人困惑,因此请通过交换关系中给出的值来验证键。

以上是关于如何使用laravel中另一个表中的外键获取所需的列的主要内容,如果未能解决你的问题,请参考以下文章

无法从 Laravel Vue 通讯录项目中的外键表中获取数据

如何使用 CodeIgniter 3 中的外键从表中获取列数据

PHP Laravel 根据投票表的外键从问题表中获取所有问题

如何编写一个查询,根据 ms 访问的子表中的外键获取信息?

尝试使用 Laravel 中的外键从数据库中提取多行

如何通过laravel中的外键检索记录的完整数据?