2

Laravel で Eloquent を使用した例を次に示します。

私がCMSに取り組んでいるとしましょう。

  • コントローラーはルートを取得し、ルートを介してページを検索します。
  • モデルは、ルートを使用して探している行のIDを把握する静的関数を提供します
  • モデルはそれ自体を使用してデータベース クエリを実行し、結果を返します。

コントローラーコードの例:

Route::get('(.*)', function($route)
{
    $page = Page::load_by_route($route);
});

モデルコードの例:

class Page extends Eloquent {

    public static function load_by_route($route)
    {
        // Explode the route and trace to find the actual id of the row we need.
        // ... some lines of code to accomplish it...

        // Use the $id we discovered to perform the actual query
        $page = Page::find($id)->first();

        return $page;
    }
}

「そもそもなぜPage::where('route', '=', $route)->first()を使えないのかと尋ねる前に、私はこの例の「やり方」について疑問に思っていません。ページモデル内で Page:: を使用するのは悪いことでしょうか?

4

1 に答える 1

9

いいえ、しかし慣例ではself、現在のクラスを参照するために使用するように言われています:

$page = self::find($id)->first();
于 2013-03-07T22:10:51.507 に答える