Laravel 4에서 여러 열에 대한 정렬 기준을 사용하는 방법은 무엇입니까?

Laravel 4에서 여러 열에 대한 정렬 기준을 사용하는 방법은 무엇입니까?

Laravel 4에서 여러 열에 대한 정렬 기준을 사용하는 방법은 무엇입니까?

Laravel Eloquent의 방법을 사용하여 Laravel 4에서 여러 열을 정렬하고 싶습니다 orderBy() . 다음과 같이 Eloquent를 사용하여 쿼리가 생성됩니다.

SELECT * FROM mytable ORDER BY coloumn1 DESC, coloumn2 ASC

어떻게해야합니까?

orderBy() 필요한 횟수만큼 호출 하면됩니다. 예를 들어 :

User::orderBy('name', 'DESC') ->orderBy('email', 'ASC') ->get();

다음과 같은 쿼리를 생성합니다.

SELECT * FROM `users` ORDER BY `name` DESC, `email` ASC

당신은 @rmobis가 그의 대답에서 지정한 것처럼 할 수 있습니다.

order by 두 번 사용 :

MyTable::orderBy('coloumn1', 'DESC') ->orderBy('coloumn2', 'ASC') ->get();

두 번째 방법은

사용 raw order by :

MyTable::orderByRaw("coloumn1 DESC, coloumn2 ASC"); ->get();

둘 다 다음과 같은 쿼리를 생성합니다.

SELECT * FROM `my_tables` ORDER BY `coloumn1` DESC, `coloumn2` ASC

첫 번째 답변의 의견에 @rmobis가 지정되었으므로 다음 과 같이 열로 정렬하는 배열처럼 전달할 수 있습니다 .

$myTable->orders = array( array('column' => 'coloumn1', 'direction' => 'desc'), array('column' => 'coloumn2', 'direction' => 'asc') );

또 다른 방법 iterate 은 루프입니다.

$query = DB::table('my_tables'); foreach ($request->get('order_by_columns') as $column => $direction) { $query->orderBy($column, $direction); } $results = $query->get();

그것이 도움이되기를 바랍니다 :)

여기에 임의의 수의 열로 주문 해야하는 기본 저장소 클래스에 대해 생각해 낸 다른 닷지가 있습니다.

public function findAll(array $where = [], array $with = [], array $orderBy = [], int $limit = 10) { $result = $this->model->with($with); $dataSet = $result->where($where) // Conditionally use $orderBy if not empty ->when(!empty($orderBy), function ($query) use ($orderBy) { // Break $orderBy into pairs $pairs = array_chunk($orderBy, 2); // Iterate over the pairs foreach ($pairs as $pair) { // Use the 'splat' to turn the pair into two arguments $query->orderBy(...$pair); } }) ->paginate($limit) ->appends(Input::except('page')); return $dataSet; }

이제 다음과 같이 전화를 걸 수 있습니다.

$allUsers = $userRepository->findAll([], [], ['name', 'DESC', 'email', 'ASC'], 100);

참고 URL : https://stackoverflow.com/questions/17006309/how-to-use-order-by-for-multiple-columns-in-laravel-4

from http://big-blog.tistory.com/2641 by ccl(A) rewrite - 2020-05-09 10:28:03