我有一个问题排序结果的多态关系在拉威尔。假设我们有两张这样的table:
users table :
- integer id
- string name
meta table :
- integer id
- string key
- string value
- string owner_type
- integer owner_id
用户表和元表之间是多态关系。因此,我们有一些用户,他们每个人都有一些元这是一个假设的例子,数据库记录(与元)
id 1
name "user1"
meta :
id 3
key "test"
value "3"
owner_type "App\\User"
owner_id 1
id 2
key "some other key"
value "some other value"
owner_type "App\\User"
owner_id 1
id 2
name "user2"
meta :
id 3
key "test"
value "2"
owner_type "App\\User"
owner_id 2
现在我想按meta-value列对用户结果进行排序,其中key是test。像这样:
$results = User::with(['meta' => function($q){
$q->where('key' , 'test');
}])->orderBy('meta.value')->get();
当然,上面的代码不起作用
你的解决方案是什么?如果我们想从数据库中获取用户,并按一个具有特殊键的元的值对结果进行排序,我们应该怎么做?
注意:我想在得到结果之前对数据进行排序
1条答案
按热度按时间3yhwsihp1#
加入怎么样?