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:: を使用するのは悪いことでしょうか?