Является ли плохая практика для модели называть себя внутри себя?

Вот пример, используя Eloquent в Laravel.

Предположим, я работаю над CMS.

  • контроллер берет маршрут и просматривает страницу по маршруту.
  • модель предоставляет статическую функцию, которая использует маршрут для определения идентификатора строки, которую он ищет
  • модель затем использует себя для выполнения запроса к базе данных и возвращает результат

Пример кода контроллера:

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 :: где (« route »,« = »,« $ route ») -> first () в первую очередь: мне не интересно« как это сделать »в этом примере. Мне просто интересно, плохо ли использовать страницу :: внутри модели страницы?