26 lines
		
	
	
		
			692 B
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			692 B
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
<?php
 | 
						|
 | 
						|
namespace App\Traits;
 | 
						|
 | 
						|
use Illuminate\Database\Eloquent\Model;
 | 
						|
use Illuminate\Http\Request;
 | 
						|
 | 
						|
trait HasOrderByRequest
 | 
						|
{
 | 
						|
    public function orderByRequest(&$builder, Request $request)
 | 
						|
    {
 | 
						|
        foreach ($request->keys() as $keyRequest) {
 | 
						|
            // Order by
 | 
						|
            if (str_contains($keyRequest, 'order_by')) {
 | 
						|
                $column = str_replace('order_by_', '', $keyRequest);
 | 
						|
                if ($request->get($keyRequest) === 'desc') {
 | 
						|
                    $builder = $builder->orderBy($column, 'desc');
 | 
						|
                } else {
 | 
						|
                    $builder = $builder->orderBy($column, 'asc');
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        return $builder;
 | 
						|
    }
 | 
						|
}
 |