当前位置: 首页 > 知识库问答 >
问题:

laravel 5.2一个支点与多个关系(属于同一性/多态性)?

锺高翰
2023-03-14

他是两个家伙。我需要你的帮助。

我对laravel/Elount/relation中的逻辑和最佳实践有三个问题。

第一种情况

我有四个模型/桌子。

1.) model: Ticket | db: tickets
2.) model: Status | db: status
3.) model: Comment | db: comments
4.) model: User | db: users
and
1.) one pivottable between Ticket and Status (status_ticket)

逻辑问题:

1.) one ticket can have many status. (belongstomany/belongstomany)
2.) each status can have one comment (hasone/belongsto) and one user (hasone/belongsto) but only in combination with ticket (pivot:status_ticket).

我的想法是给数据透视表两个附加的列(与数据透视('user_id','comment_id'))

*)第一个问题:我怎样才能实现这个构想?

第二种情况第二个问题与第一个问题相同,但在这些情况下,我如何访问“评论”,而不是使用hasone/belongsto,而是使用多态关系??

我的db:

comments
    id - integer
    message - string

status
    id - integer
    name - string

tickets
    id - integer
    name - string

users
    id - integer
    name - string

第三个问题命名数据透视表的最佳方式是什么?

1.) 
status_ticket
    id - integer
    comment_id - integer
    status_id - integer
    ticket_id - integer
    user_id - integer

2.)
comment_status_ticket_user
    id - integer
    comment_id - integer
    status_id - integer
    ticket_id - integer
    user_id - integer

共有1个答案

封梓
2023-03-14

我的解决方案

我为数据透视表创建了一个模型。在数据透视表模型中,我创建了与morphOne(注释)的关系。信息:用户id现在位于评论数据库中。

DB(状态和票证之间的轴心):状态\票证

id - integer
status_id - integer
ticket_id - integer

DB:评论

id - integer
message - string
user_id - integer
commentable_id - integer
commentable_type - string

型号:TicketStatus

namespace App;
use Illuminate\Database\Eloquent\Model;

class TicketStatus extends Model {

protected $table = 'status_ticket';
public $timestamps = true;

    public function comment() {     
        return $this->morphOne('App\Comment', 'commentable');
    }

}

stackoverflow:如何使用多个数据透视表关系

 类似资料:
  • 从xml中,我需要获得每个节点的名称和面积。 我知道示例xpath,比如,

  • 我目前正在用Laravel构建我的第一个应用程序,我偶然发现了一个问题,即我不知道如何设置模型(用户和组)之间的多对多关系。 我已经创建了一个板,其中存储了所有用户和他们所在的组之间的关系。我的问题是,我不知道如何访问和设置这在Laravel。我不确定我是否必须用户has很多或属性。 我正试图找到一种方法,将用户添加到组中,以便在UserGroups表中创建一个新条目。 我的桌子: 用户 ID 集

  • 我继承了一个项目,它有一些CRUD形式...在创建表单中,我们需要创建一个和关系的条目。所以基本上我得到的是以下这些 我不确定这是否是最好的方法,但似乎有效。 我遇到的问题是,在表单中,这些参与者/评论可以编辑、添加或删除,我不确定如何更新它们。是否可以更新它们,或者删除现有关系数据并重新添加它们是否更好? 我从来没有更新过关系,只是添加了它们,所以我不确定如何开始。 任何帮助都将不胜感激。

  • 问题内容: 假设我有一个具有两个不同的一对多关系的对象。很像: 和 假设我的对象有两个与这两个对象相关的列表。 我已经阅读了以下示例:http : //forum.springsource.org/showthread.php?50617-rowmapper -with-one-to-many- query,其中说明了如何使用单个一对多关系来执行此操作。为了您的方便,这里是替代: 我认为这并不涉及

  • 为什么最后输出的是“WuffRingding”而不是“RingdingRingding”? 为什么最终输出是“颤动”而不是“振铃”?为什么最终输出是“颤动”而不是“振铃”?

  • 在我的属性模型中,我定义了这两个关系 在我的控制器中,我创建一个属性对象,并尝试获取已批准和挂起的图像。 变量是预期的。 然而,只是! 我尝试使用这个答案获取最后一个数据库查询,似乎挂起的查询甚至没有被执行。(最后一次查询运行已批准=1,这是针对关系。) 我怀疑这种关系可能是一个问题,但我被难住了。