我是一名有用的助手,可以为您翻译文本。
我有一个关于Eloquent ORM的问题 - 具体来说,是与Laravel 4一起使用。我在使用它运行基本查询和关系方面没有任何问题,但是我最近遇到了这种有些独特的情况/模式:
我有三个表格。它们的结构目前是这样的:
也许因为我将ENUM作为外键使用,所以需要明确指定?无论如何,希望您能发现我的困惑并指导我走向正确的方向。在我掌握这个技术之前,非常感谢您的帮助。
我有一个关于Eloquent ORM的问题 - 具体来说,是与Laravel 4一起使用。我在使用它运行基本查询和关系方面没有任何问题,但是我最近遇到了这种有些独特的情况/模式:
我有三个表格。它们的结构目前是这样的:
post
id - int
post_type - enum(ARTICLE, QUOTE)
user_id - int
created_at - timestamp
updated_at - timestamp
post_type_article
id - int
post_id - int
title - varchar
summary - varchar
url - varchar
post_type_quote
id - int
post_id = int
author = varchar
quote = text
在此之后,我希望只使用Eloquent ORM来运行一个查询/函数,并获取所有帖子及其相应的数据,而不管帖子类型如何。
我很想听听对此的反馈(我的关系、我的模型应该是什么)。据我所知,这可能是一种多态关系。以下是/曾经是我的模型,但我是新手,不确定这是否是正确的方向:
模型: Post.php:
<?php
class Post extends Eloquent {
public function postType()
{
return $this->morphTo();
}
}
模型:PostTypeArticle.php:
<?php
class PostTypeArticle extends Eloquent {
public $timestamps = FALSE;
protected $table = 'post_type_article';
public function post()
{
return $this->morphMany('Post', 'post_type');
}
}
模型:PostTypeQuote.php:
<?php
class PostTypeQuote extends Eloquent {
public $timestamps = FALSE;
protected $table = 'post_type_quote';
public function post()
{
return $this->morphMany('Post', 'post_type');
}
}
也许因为我将ENUM作为外键使用,所以需要明确指定?无论如何,希望您能发现我的困惑并指导我走向正确的方向。在我掌握这个技术之前,非常感谢您的帮助。