Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在laravel 4中构造相关模型_Php_Laravel_Laravel 4_Entity Relationship - Fatal编程技术网

Php 如何在laravel 4中构造相关模型

Php 如何在laravel 4中构造相关模型,php,laravel,laravel-4,entity-relationship,Php,Laravel,Laravel 4,Entity Relationship,我很难弄清楚如何处理具有“动态”相关模型的模型 有一个名为组的模型 创建群组时,您可以进行群组游戏或群组游戏玩家。这是由组模型中的组类型指定的。所以类型1与GroupGame相关,类型2与GroupGamer相关 我应该在这里建立多态关系吗?并将共享一个组表的父级反转为GroupGame和GroupGamer?或者让Group作为父对象,并且它具有相关的GroupGame或GroupGamer模型 我有其他模型,如新闻、媒体等,我计划使用它的id将其与组模型联系起来 要点: 只是不知道该怎么做才

我很难弄清楚如何处理具有“动态”相关模型的模型

有一个名为组的模型

创建群组时,您可以进行群组游戏群组游戏玩家。这是由组模型中的组类型指定的。所以类型1与GroupGame相关,类型2与GroupGamer相关

  • 我应该在这里建立多态关系吗?并将共享一个组表的父级反转为GroupGame和GroupGamer?或者让Group作为父对象,并且它具有相关的GroupGame或GroupGamer模型
  • 我有其他模型,如新闻、媒体等,我计划使用它的id将其与组模型联系起来

    要点:


    只是不知道该怎么做才对。希望这是有意义的。

    关于你问题的第一部分,多态关系是一条可行之路。您创建游戏玩家模型,它们都需要是“可分组”类型,其类型将由“可分组类型”字段确定。在上述情况下,您使用3个表-用于玩家游戏和多边形

    //example table structure
        CREATE TABLE `group` (
          `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
          `title` varchar(255) NOT NULL,
          `description` varchar(255) NOT NULL,
          `groupable_id` int(11) unsigned NOT NULL,
          `groupable_type` varchar(255) NOT NULL,
          `created_at` datetime NOT NULL,
          `updated_at` datetime NOT NULL,
          PRIMARY KEY (`id`)
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
    
    //app/models/Group.php
    class Group extends Eloquent {
    
        protected $table = 'group';
    
        public function groupable()
        {
            return $this->morphTo();
        }
    
    }
    
    //app/model/Gamer.php
    class Gamer extends Eloquent
    {
        ...
    
        public function group()
        {
            return $this->morphMany('Group', 'groupable');
        }
    
        ...
    }
    
    //app/model/Game.php
    class Game extends Eloquent
    {
        ...
    
        public function group()
        {
            return $this->morphMany('Group', 'groupable');
        }
    
        ...
    }
    
    至于其他模型,这将与组相关,情况也是如此-您可以发挥神奇的作用,还可以使它们“可分组”,这将使您能够将所有组详细信息存储在一个表中

    //app/model/News.php
    class News extends Eloquent
    {
        ...
    
        public function group()
        {
            return $this->morphMany('Group', 'groupable');
        }
    
        ...
    }
    

    你的问题我不清楚,你能用一些代码把它说清楚一点吗。
    当创建一个群组时,你可以做一个GroupGame或GroupGamer
    意味着什么?下面是一些示例代码/类的要点。有帮助吗?然而,我对许多问题感到困惑。每组只有一个游戏或一个玩家。基本上,它是一个组,但根据类型,玩家或游戏将具有其他属性。我的理解是,当你有一个有多个组的单一游戏,然后你调用一个游戏,并提出它的所有组,多态将是很好的。但这是1:1。查看本文,了解基本多态用法的典型示例:谢谢您的帮助。由于我似乎无法提取相关模型的数据,因此我分裂成一个关于获取数据的单独问题: