我有给定的表结构:
// table: examples
+ -- + ---- +
| id | name |
+ -- + ---- +
| 1 | Test |
| 2 | Test |
+ -- + ---- +
// table: example_data
+ -- + --------------- + ------------------ + --- + ----------------- +
| id | example_data_id | exmaple_data_type | key | value |
+ -- + --------------- + ------------------ + ------------|---------- +
| 1 | 1 | App\Models\Example | external | 1 |
| 2 | 1 | App\Models\Example | otherKey | string |
| 3 | 2 | App\Models\Example | external | 0 |
+ -- + --------------- + ------------------ + ----------- + --------- +
// Example Model:
public function daten()
{
return $this->morphMany(ExampleData::class, 'example_data');
}
// ExampleData Model:
public function example_data()
{
return $this->morphTo();
}
如何在key ="external"的情况下按"example_data"中的"value"对示例进行排序?
$examples = Example::with('daten')
->orderBy(***value from external in daten***) // something like this 'Example->daten->key="external" ==> orderBy Example->daten->value'
->paginate($request->total);
orderBy和callback可以实现吗?回调效果如何?
1条答案
按热度按时间vmdwslir1#
这是否回答了您的问题:
这将按升序对
key
列进行排序。如果只需要key
等于external
的记录,可以执行以下操作:并按
value
列排序。