【问题标题】:Extending a Model in Phalcon在 Phalcon 中扩展模型
【发布时间】:2013-10-23 14:46:02
【问题描述】:

如何在 Phalcon MVC 模型之间建立子父关系?

这是我想到的数据库架构:

explain show;
+---------+--------------+------+-----+---------+-------+
| Field   | Type         | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| id      | int(11)      | NO   | PRI | NULL    |       |
| length  | int(11)      | NO   |     | NULL    |       |
| title   | varchar(100) | NO   |     | NULL    |       |
+---------+--------------+------+-----+---------+-------+

explain show_episode;
+---------+--------------+------+-----+---------+-------+
| Field   | Type         | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| show_id | int(11)      | NO   | PRI | NULL    |       |
| season  | int(11)      | NO   |     | NULL    |       |
| episode | int(11)      | NO   |     | NULL    |       |
+---------+--------------+------+-----+---------+-------+

show_episode 中的每个元素也存在于show 表中,但是有些显示记录仅存在于show 中。

这个想法是有两个 Phalcon 模型类:

class Show extends Phalcon\Mvc\Model
{
  public $id;
  public $length;
  public $title;
}

class ShowEpisode extends Show 
{
  public $season;
  public $episode;
}

我需要如何配置这些模型才能像这样检索和保存剧集记录:

// retrieve
$episode = ShowEpisode::findFirst(array("id"=>333));
echo $episode->season;
echo $episode->title;

// save
$episode->title = "New Title";
$episode->season = 3;
$episode->save();

【问题讨论】:

    标签: php phalcon


    【解决方案1】:

    你看过了吗?

    class Show extends Phalcon\Mvc\Model
    {
      public $id;
      public $length;
      public $title;
    
      public function initialize()
      {
        $this->hasMany("id", "Episode", "showid", NULL);
      }
    }
    

    或者类似的东西?

    【讨论】:

    • 嗨,丹尼,感谢您的回答。我确实这样做了,但这仅定义了一种关系。每次要插入新记录时,您仍然需要创建两个不同的模型(Show 和 ShowEpisode)。当您尝试更新它时,事情会变得更加复杂。
    • 我会深入研究一下,因为我的模型的外观和行为与您的相似。
    猜你喜欢
    • 2014-05-08
    • 1970-01-01
    • 2020-04-06
    • 2013-06-17
    • 2020-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多