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 回答