2016-08-17 4 views
6

私は、デフォルトのソートとDataObjectを持っているのDataObjectのデフォルトを削除します。その与えられた はソート

...

Author::create(array('Name' => 'DEF'))->write(); 
Author::create(array('Name' => 'ABC'))->write(); 

これは出力ABCその後、DEFは、並べ替えを使用しますが、ソートがクリアされた場合、私はDEFその後、ABC期待したいです。

私はAuthor::get()->sort('')Author::get()->sort(null)を試してみたが、両方はDEF再びABCを返します。

メモこれは問題の原因となる複雑なクエリ(結合を使用)があり、ソートを試しても設定しようとするとエラーが発生します。

SQL構文に誤りがあります。だから、ライン1

ソリューションで「『_SortColumn0』 ASC BY ORDER」近くを使用する権利構文についてはMySQLサーバのバージョンに対応するマニュアル、および私はとにかく知りたいのを確認し、どのようにDataObjectの既定の既定の並べ替えを維持しながら、特定のAuthor::get()の既定の並べ替えをクリアしますか?

+0

'プライベート静的$のdefault_sort =「名前DESC」;' –

+0

は@Anantありがとうしかし、いや、私は他のすべての場合のデフォルトのソートを維持したいです。 – Barry

+0

' - > sort(null)'を試しましたか?私はこれをテストしていない。 – 3dgoo

答えて

4

ソートを解除する唯一の方法は、Author::get()を実行するときに返されるDataListの基底となるDataQueryを操作することだと思います。

$dq = Author::get()->dataQuery(); 
$dq->sort(null, null, true); 
$authors = Author::get()->setDataQuery($dq);