laravel 5.2一个有很多关系的枢轴(属于多态/属性)?

时间:2016-03-21 15:53:29

标签: php laravel polymorphism pivot has-and-belongs-to-many

他们,伙计们。 我需要你的帮助。

我对laravel / eloquent / 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)

logicproblem:

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).

我的想法是为数据透视表提供两个附加列(withPivot(' user_id',' comment_id'))

*)第一个问题: 我怎么能意识到这种构造?

第二种情况 第二个问题与第一个问题相同,但在这些情况下我如何才能访问"评论"不是与hasone / belongssto而是与多态关系??

我的数据库:

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 个答案:

答案 0 :(得分:0)

我的解决方案:

我为pivottable创建了一个模型。 在pivottablemodel中我创建了与morphOne(注释)的关系。 info:user_id现在位于注释db中。

数据库(状态和故障单之间的转轴):     status_ticket

id - integer
status_id - integer
ticket_id - integer

<强> DB:     评论

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

<强> MODEL:     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');
    }

}

计算器: How to use multiple pivot table relationships