B_S*_*ter 3 php sql junction yii2
我正在与 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']);
}
Run Code Online (Sandbox Code Playgroud)
上面的代码是自动生成的代码。
有人能告诉我如何显示getVideos()函数返回的内容吗?
hasMany 的用法在用户指南中有很好的解释。
调用getVideos()仅返回 ActiveQuery 实例。您需要以某种方式使用它来获得结果。
您可以获得多对多关系中的所有行:
$videos = $user->getVideos()->all();
Run Code Online (Sandbox Code Playgroud)
此外,您可以像这样过滤它们:
$videos = $user->getVideos()
->where(['>', 'year', 2000])
->orderBy('id')
->all();
Run Code Online (Sandbox Code Playgroud)
基本上,在getVideos()您可以使用 ActiveQuery 进行过滤、分组、计数、排序和执行任何操作之后,就像使用find().
| 归档时间: |
|
| 查看次数: |
1631 次 |
| 最近记录: |