Подтвердить что ты не робот

Как создать модель Laravel без Красноречивого?

Как я не уверен, возможно ли создавать модели с классом DB вместо Eloquent? Я хочу держаться подальше от ORM.

Спасибо

4b9b3361

Ответ 1

Да, конечно, это возможно. Вам не нужно расширять любой класс, чтобы создать класс модели, который инкапсулирует бизнес-логику и состоит из методов, вызывающих класс DB.

Просто создайте свою модель внутри app/models/MyModel.php следующим образом

class MyModel{

    public static function getMyData(){
         DB::table('users')->select('column')->get();

    }
}

тогда вы должны быть в порядке, чтобы вызвать ваш новый класс статически:

$data = MyModel::getMyData();

Если вы хотите расширить класс DB, который вы могли бы, хотя, скорее всего, вы хотели бы расширить класс Database/Builder для расширения функциональности, но это сложная тема, и я подозреваю, что вы задали бы совсем другой вопрос, если бы это был тем, чем вы были.

Как я окончательно заметил, я бы не избежал "Красноречивого", это самое замечательное в Laravel среди множества других замечательных вещей.

Ответ 2

Просто удалите "extends Eloquent" и создайте запросы, используя класс DB.

Ответ 3

Goofy,

Вы должны сделать свою функцию статической.

Например,

class Type {
    public static function type_get() {
        DB::table('story_types')->get();
    }
}