回答:
クエリ関数で関係を拡張することが可能です:
<?php
public function comments()
{
return $this->hasMany('Comment')->orderBy('column');
}
[コメント後に編集]
<?php
class User
{
public function comments()
{
return $this->hasMany('Comment');
}
}
class Controller
{
public function index()
{
$column = Input::get('orderBy', 'defaultColumn');
$comments = User::find(1)->comments()->orderBy($column)->get();
// use $comments in the template
}
}
デフォルトのユーザーモデル+単純なコントローラーの例。コメントのリストを取得するときは、Input :: get()に基づいてorderBy()を適用するだけです。(必ず入力チェックを行ってください;))
私もできると思います:
$sortDirection = 'desc';
$user->with(['comments' => function ($query) use ($sortDirection) {
$query->orderBy('column', $sortDirection);
}]);
これにより、関連する各コメントレコードに対して任意のロジックを実行できます。あなたはそこに次のようなものを持つことができます:
$query->where('timestamp', '<', $someTime)->orderBy('timestamp', $sortDirection);
appointments
とschedules
)、クエリは単純です:取得appointments
順をschedules
。datetime
下降。テーブルappointments
から格納するためにテーブルに新しい列を追加することで解決策がありdatetime
ますschedules
。そして今、私はで注文するだけですappointments
。datetime
私はそれが最善の方法ではないことを知っていますが、問題を解決します。XD