Как я не уверен, возможно ли создавать модели с классом DB вместо Eloquent? Я хочу держаться подальше от ORM.
Спасибо
Ответ 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();
}
}