如何在phalcon模型中使用选择列,关系为

时间:2017-03-24 09:39:26

标签: phalcon phalcon-orm

我的模型名为UserUserPhoto,在一个用户中与许多用户照片相关

$this->hasMany("id", "UserPhoto", "user_id");
$this->belongsTo("user_id", "User", "id");

如果我尝试

$userData = User::find();

foreach ($userData as $user) {
    $userPhotoAry = $user->UserPhoto;
}

我正在获取关系结果集,但我只需要从表中选择列。

所以我试过了,

$userData = User::find(array("columns"=>"id,username"));

foreach ($userData as $user) {
    $userPhotoAry = $user->UserPhoto;
}

我得到$UserPhoto未定义。

有没有办法在查询中提及列和关系?

3 个答案:

答案 0 :(得分:0)

使用默认行为,您不能。原因如下:

CREATE TABLE misSpells(
misSpell VARCAHR, 
correspondingOne VARCHAR
) 
Examples:
    magician, magician
    magican, magician
    DDD, DDD
    D/D/D, DDD

正如您在上面指出的那样,指定列不会返回Model实例,而是返回Row实例,它们没有您自己已经看过的方法/关系。

有一种方法可以实现它,但需要一些额外的努力,我不确定它是否值得。您可以在 this forum topic 中阅读更多内容,并按照提供的链接进行操作。

答案 1 :(得分:0)

据我所知,这是不可能的。 关系有所有列。为什么不呢?

或者像这样:

$userData = User::query()
->columns(["User.id", "User.username"])
->innerJoin("UserPhoto")
->execute();

答案 2 :(得分:0)

您可以取消设置您不想在foreach中使用的列