【问题标题】:Laravel Eloquent Relationships custom schemaLaravel Eloquent 关系自定义模式
【发布时间】:2023-04-01 07:23:01
【问题描述】:

我想根据提供的图片创建一个数据库结构。但是我不知道如何使它与 laravel 一起工作,我需要使用什么类型的关系,以及是否有一种相当有效的方法。

http://i.stack.imgur.com/Vcjon.jpg

假设我想获取所有用户数据的数组,Eloquent 会使用内置关系轻松做到这一点吗?

【问题讨论】:

  • 感谢@deczo 的帮助,作为 laravel 和 web 开发的新手,像你这样的人真的让人们在社区中感到受欢迎。
  • 我回答了你的问题,不是吗?如果您在设置方面需要帮助,请展示您的努力,粘贴您尝试过的代码,然后就 X 和 Y 寻求帮助,因为您无法使其工作。我很确定您会从包括我自己在内的社区获得足够多的帮助。
  • 好吧,这很公平,在使用文档之后,我无法弄清楚这是哪种关系。我正在尝试“有很多通过”,但最终诉诸循环内的循环,这是无用的。我想我更想知道这个系统(虽然可扩展)是否实用,我是否在浪费时间追求?
  • 嗯,一张图片说千言万语,真的。然而,仅仅给你直接的建议是不够​​的。无论如何,您可以尝试调整您的架构,删除所有那些..meta_type..meta_data 表,而不是使用一个全局元表,您可以在其中拥有owner_id, owner_type, type, data,然后您可以使用polymorphic 关系来获取元数据(使用@987654326 @ 和 owner_type)。这是一个开始。 hasManyThrough 在您的架构中没有应用程序。
  • 好的,谢谢你的提示,我会在多态关系上试试运气。

标签: laravel-4 database-schema


【解决方案1】:

建立关系是一件很难的事情,但是 laravel 确实通过 Eloquent 提供了非常可靠的方法。

我不会向您介绍基础知识,您可以在 Laravel 或 Eloquent 文档中找到这些基础知识。但我可以根据您的图表向您展示在进行谷歌搜索时您会遇到哪些关键词。

如果你是模型博客和作者的关系,你是使用一对多,使用 Eloquent,它会是

class Blog extends Eloquent {
    public function author() {
        return $this->belongsTo('Author');

其中最困难的一种是多对多关系,例如。标签,如果你的博客有很多标签。会的

class Blog extends Eloquent {
    public function tags() {
        return $this->belongsToMany('Tag');

想法就这么简单,详情请访问http://laravel.com/docs/eloquent#relationships

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-19
    • 2017-04-02
    • 2016-02-26
    • 2018-01-21
    • 2020-12-14
    • 2021-10-01
    • 2018-10-20
    • 2021-07-04
    相关资源
    最近更新 更多