- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个问题,希望不要让你感到困惑。
我想显示文章的用户名(它们是两个表,用户和文章),相关性是users.id -> posts.author(外键)
这正确显示了我想要的内容:
SELECT `Post`.`id`, `Post`.`author`, `Post`.`title`, `Post`.`content`, `Post`.`description`, `Post`.`status`,
`Post`.`name`, `Post`.`type`, `Post`.`date`, `Post`.`modified`, `Post`.`img`,
`Authors`.`username`, `Authors`.`id`
FROM `myblog`.`posts` AS `Post`
LEFT JOIN `myblog`.`users` AS `Authors` ON (`Authors`.`id` = `Post`.`author`)
WHERE `Post`.`type` = 'post'
ORDER BY `Post`.`date` desc
LIMIT 5
问题在于下面的代码处于 ON
(`Authors`.`id` = `Post`.`author`)
转换为
ON (`Authors`.`id` = `Post.author`)
生成“Post”。 `author` 是字符串。
cakePHP中的代码
帖子模型内部
public $hasOne = array(
'Authors' => array(
'className' => 'User',
'foreignKey' =>'id',
'fields' => array('username','id'),
'conditions'=>array('Authors.id'=>'Post.author')
)
);
postsController 内部
public $paginate = array(
'Post' => array(
'paramType' => 'querystring',
'limit' => 5,
'conditions'=> array('Post.type'=>'post'),
'order' => array('Post.date'=>'desc')
)
);
...
...
...
public function index() {
$this->Paginator->settings = $this->paginate;
$data = $this->Paginator->paginate('Post');
$this->set('posts',$data);
}
返回所有结果,但用户名为空。
不知道吗?使用子查询?
我尝试转义字符 'conditions' => 数组 ('Authors'.'id' => 'Post.author') 但它不起作用。
最佳答案
我认为问题出在关系类型上。帖子属于一个用户,但一个用户可以拥有多个帖子。所以,关系应该是-
User.php
public $hasMany = array('Post');
Post.php
public $belongsTo = array('User');
关于php - CakePHP - 代码 $hasOne 的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22908549/
返回 $this->hasOne('App\Phone', 'foreign_key', 'local_key'); 我需要这两个表中的 hasone 关系。 在这两个表中,关系应该在父表和子表中的用
在登录模型中,我具有与图片表的实现关系 function picture () { return $this->hasOne('App\Picture'); } 现在我想要Picture.pic
这两种 hasOne 语法有什么区别? class Project { ....... ............ static hasOne = Employee // static h
我想对域关联进行反射(reflection),以自动为 RESTful WS(脚手架)生成 JSON/XML 格式的类描述 rune 件。在 HasOne 的情况下(据说是双向的),我试图在 Asso
我正在尝试将 leftJoin 添加到 hasOne 方法中,但它似乎不起作用。来自主表的数据存在,但不来自连接表。代码: public function getUser() {
我有两个模型: a) 食谱b) 用户 每个食谱都有一个用户。当 (REST) 请求食谱时,我还想在我的 JSON 答案中获取相关用户的名称,如下所示: { "id": 1, "user_id"
我是 Grails 的新手。 我可以使用“hasOne”或“hasMany”而不使用“belongsTo”到另一个域类吗? 提前致谢。 最佳答案 是的你可以。请参阅 Grails 文档中的示例:htt
要在 Grails 中创建一对一关系,我可以执行以下操作: class Person { static hasOne = [address: Address] } 在这种情况下,地址表具有其人
我对 NodeJS 和 SequelizeJS 比较陌生,并且我正在构建的查询面临 hasOne 问题,我想知道您对此问题的看法,以找出我出错的地方以及实现此查询的正确方法。 Association
我的表 下面是将 ad_type_id 作为外键并与 ad_type 关联的分类模板模型 'use strict'; module.exports = (sequelize, DataType
假设我有一个 grails 域类,它看起来像 class Person { Address address } 我也可以将其声明为 class Person { static hasOne
我在设置 hasOne 关系时遇到了一些问题,这可能是因为我错误地理解了该关系? 我有 2 个模型,一个用户模型和一个位置模型。我现在要添加的是用户和位置之间的关系,这意味着用户具有当前位置。但是,如
为什么 Laravel 的 Eloquent 坚持 hasOne 关系中的外键必须位于引用表中,而不是位于父表中? 我要求获得一般性的理解/丰富。 例如,来自 Laravel 文档:如果 User 有
在将现有应用程序从 Grails 2.5 迁移到 3.1 时,我遇到了双向一对一关系的奇怪问题。 想象一个带有 User 和 Employee 的简单模型对象。 A User代表通用用户帐户。并非所有
我有一些模型正在尝试关联。 一种模型是 Item,一种是 Slide,另一种是 Asset。 项目下方有多个幻灯片。 Assets 基本上是已上传的文件(图像、mp3 等),幻灯片是显示 Assets
为什么 Laravel 的 Eloquent 坚持 hasOne 关系中的外键必须位于引用表中,而不是位于父表中? 我要求获得一般性的理解/丰富。 例如,来自 Laravel 文档:如果 User 有
对于 belongsTo关系,我可以用dissociate ,但什么是等效于 hasOne ? 前任。 Phone属于User : $phone->user()->dissociate(); // s
所以我有2个模型,User & Profile,关系设置如下: /** * User belongs to many Profile * * @return \I
我有两个表: users 包含(id, name, email) id为主键。 users_details contains (user_id, address, city, postcode) us
我有 2 个表: "article": |id|name|text| "article_permissions" |article_id|val| 所以,我不想将 article_permis
我是一名优秀的程序员,十分优秀!