我有一个无法处理的问题。我有一个新闻表格,包括TitleID,TextID,ImageID。还有三张表格--标题,文字,图片。我想把他们都放在一个模型里。但是当我尝试的时候,得到的结果就像数组中的数组。但我想要的是:
[ News: [ { ID, Title, Text, Image } ] ]雄辩的ORM对此的回应如下:
[ News: [ { ID, Title: [ID, Title], Text: [ID, Text], Image: [ID, Image] } ] ]数据库结构
新闻=>
+-----------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+-------------+------+-----+---------+----------------+
| ID | int(11) | NO | PRI | NULL | auto_increment |
| TitleID | int(11) | NO | | NULL | |
| TextID | int(11) | NO | | NULL | |
| ImageID | int(11) | NO | | NULL | |
| CatID | int(11) | NO | | NULL | |
| OlusturmaZamani | datetime | NO | | NULL | |
| YayinZamani | datetime | NO | | NULL | |
| DuzenlemeZamani | datetime | YES | | NULL | |
| Onay | tinyint(11) | NO | | NULL | |
| Hit | int(11) | YES | | NULL | |
+-----------------+-------------+------+-----+---------+----------------+
标题=>
+------------+---------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+---------+------+-----+---------+----------------+
| ID | int(11) | NO | PRI | NULL | auto_increment |
| TitleText | text | NO | | NULL | |
+------------+---------+------+-----+---------+----------------+
其他表如标题表。
发布于 2017-10-31 18:59:01
发布于 2017-10-31 20:17:23
你是否有理由将标题和文本提取到他们自己的桌子上?
对你来说,解决办法应该是像你在这篇文章中看到的那样:
针对您的示例进行了调整:
假设您将relationShip更改为"titleTable",只是为了避免碰撞
class News extends Eloquent {
protected $appends = array('title');
public function getTitleAttribute()
{
return $this->titleTable->TitleText;
}
}发布于 2017-11-05 21:06:25
听起来像是ORM“过度正常化”。没有合理的理由将标题、文本和图像等新闻属性放在单独的表中( JOINed )中使用"id“。
“急切加载”听起来像是一种杂乱无章的做法,让人觉得列不在News表中,这会导致不必要的效率低下。
https://stackoverflow.com/questions/47039886
复制相似问题