gpt4 book ai didi

php - 从 yii2 hasmany() 函数获取数据

转载 作者:行者123 更新时间:2023-12-04 00:06:22 25 4
gpt4 key购买 nike

我正在和yii2合作做一个基础网站。

我需要在用户登录后加载他们喜欢的视频。

在数据库中视频存储在视频表中,用户存储在用户表中,UserVideoJunction是存储用户与视频关系的联结表。

当我使用 Gii 为 3 个表生成模型和 CRUD 时,一切都很好,我可以访问和操作所有数据。

但是当我尝试获取与用户相关的视频时,问题就出现了。

public function getUservideojunctions()
{
return $this->hasMany(Uservideojunction::className(), ['UserID' => 'UserID']);
}

/**
* @return \yii\db\ActiveQuery
*/
public function getVideos()
{
return $this->hasMany(Video::className(), ['P_ID' => 'VideoID'])->viaTable('UserVideoJunction', ['UserID' => 'UserID']);
}

上面的代码是自动生成的代码。

能否告诉我如何显示 getVideos() 函数返回的内容?

最佳答案

hasMany 的用法在 User Guide 中有很好的解释。 .

调用 getVideos() 只返回 ActiveQuery 实例。您需要以某种方式使用它来获得结果。

您可以获取多对多关系中的所有行:

$videos = $user->getVideos()->all();

此外,您可以像这样过滤它们:

$videos = $user->getVideos()
->where(['>', 'year', 2000])
->orderBy('id')
->all();

基本上,在 getVideos() 之后,您可以使用 ActiveQuery 进行过滤、分组、计数、排序等任何操作,就像使用 find() 时一样。

关于php - 从 yii2 hasmany() 函数获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41470156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com