Laravel 集合排序数组
我有一个存储3个合并集合的阵列:Laravel 集合排序数组,laravel,laravel-5.5,Laravel,Laravel 5.5,我有一个存储3个合并集合的阵列: public function answer() { $interview = Interview::find(1); $videoQuestions = $interview->VideoQuestions()->get(); foreach ($videoQuestions as $vq) { $vq->type = 'video'; }
public function answer() {
$interview = Interview::find(1);
$videoQuestions = $interview->VideoQuestions()->get();
foreach ($videoQuestions as $vq) {
$vq->type = 'video';
}
$textQuestions = $interview->TextQuestions()->get();
foreach ($textQuestions as $tq) {
$tq->type = 'text';
}
$uploadQuestions = $interview->UploadQuestions()->get();
foreach ($uploadQuestions as $uq) {
$uq->type = 'upload';
}
$questions = collect($videoQuestions);
$questions = $questions->merge($textQuestions);
$questions = $questions->merge($uploadQuestions);
$questions->sortBy('order_position');
dd($questions);
}
->sortBy不起作用,因为我假设它在集合数组上不起作用
这就是我所拥有的:
但我真的希望它是一个合并的集合,而不是集合中的数组
每个VideoQuestion
或TextQuestion
都有一个order\u position
字段,我想按该字段排序
感谢您的帮助 第一件事集合是一个包含元素数组的类,该数组使用特殊方法过滤排序文档: Illumb\Support\Collection类提供了流畅、方便的 用于处理数据数组的包装器 该方法返回已排序的集合(它不适用于它所拥有的项): 所以你应该有这样的东西:
$questions = $questions->sortBy('order_position');
dd($questions);
第一件事集合是一个包含元素数组的类,该数组使用特殊方法来过滤排序文档: Illumb\Support\Collection类提供了流畅、方便的 用于处理数据数组的包装器 该方法返回已排序的集合(它不适用于它所拥有的项): 所以你应该有这样的东西:
$questions = $questions->sortBy('order_position');
dd($questions);
这可能是另一种选择:
$interview = Interview::find(1)->with(['VideoQuestions',
'TextQuestions',
'UploadQuestions',
'Questions' => function($query){
$query->orderBy('order_position', 'asc');
}])->get();
定义关系并制作一个表格,其中包含一个顺序位置,您可以对其进行排序,而不是对每个表格进行排序 这可能是另一种选择:
$interview = Interview::find(1)->with(['VideoQuestions',
'TextQuestions',
'UploadQuestions',
'Questions' => function($query){
$query->orderBy('order_position', 'asc');
}])->get();
定义关系并制作一个表格,其中包含一个顺序位置,您可以对其进行排序,而不是对每个表格进行排序 太好了!我只需要更改
$questions->sortBy('order_position')代码>到$questions=$questions->sortBy('order_position')代码>谢谢!完美的我只需要更改$questions->sortBy('order_position')代码>到$questions=$questions->sortBy('order_position')代码>谢谢!