Есть запросы к базе данных внутри красноречивого ORM - PullRequest
0 голосов
/ 21 ноября 2018

Позвольте мне показать вам мой красноречивый класс ORM:

<?php

namespace App\Http\Models\Transport_Type;

use Illuminate\Database\Eloquent\Model;
use App\Http\Models\Transport_Type\TransportType;

class TransportType extends Model{

    public $timestamps = false;

    public function foo($language_id){
        $transport_types = TransportType::join('translations', 'transport_types.name', '=', 'translations.id')
                            ->join('translation_entries', 'translations.id', '=', 'translation_entries.translation_id')
                            ->where('translation_entries.language_id', '=', $language_id)
                            ->orderBy('parent_id')
                            ->get(['transport_types.id', 'transport_types.parent_id', 'translation_entries.value']);

        return $transport_types;
    }
}

Как вы видите, у меня есть функция foo, которую я могу вызывать из разных контроллеров.Итак, вот мой вопрос: это хорошая практика?или я должен переместить эту логику запроса в контроллер?

1 Ответ

0 голосов
/ 21 ноября 2018

Я предпочитаю сохранять свои красноречивые модели и контроллеры настолько пустыми, насколько это возможно, из-за этого я предпочитаю иметь репозитории, где я обрабатываю весь свой доступ к данным.См. https://medium.com/employbl/use-the-repository-design-pattern-in-a-laravel-application-13f0b46a3dce для примеров того, как это сделать в Laravel.

Редактировать: Я не уверен, что ваш подход - плохая практика.Просто хотел поделиться своим мнением, может быть, это помогает:)!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...