【问题标题】:How to create Laravel Model without Eloquent?如何在没有 Eloquent 的情况下创建 Laravel 模型?
【发布时间】:2014-02-02 09:53:48
【问题描述】:

我不确定,是否可以使用 DB Class 而不是 Eloquent 创建模型?我想远离 ORM。

谢谢

【问题讨论】:

    标签: php orm laravel laravel-4 eloquent


    【解决方案1】:

    是的,当然有可能。您不需要扩展任何类来制作封装业务逻辑并由调用DB类的方法组成的模型类。

    只需像这样在app/models/MyModel.php 中创建模型

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

    那么你应该可以静态调用你的新类:

    $data = MyModel::getMyData();
    

    如果您想扩展 DB 类,您可以,虽然您更有可能希望扩展 Database/Builder 类以扩展功能,但这是一个复杂的话题,我怀疑如果这个问题您会问一个非常不同的问题是你所追求的。

    我最后要指出的是,我不会避开 Eloquent,它是 Laravel 最伟大的地方,也是许多其他伟大的东西

    【讨论】:

    • 我总是避免在应用程序设计中添加 ORM/不必要的层。它可能会让开发人员高兴,但不会让用户高兴。感谢您的回答!
    • @Votail3 各有特色,但我发现性能相当,更少的代码意味着更少的错误和更多的时间让开发人员创建新功能以让这些用户满意,再加上我提到的用户现在遇到的错误更少非常高兴,我的开发人员也是如此。 Eloquent 让世界变得更快乐,但我很欣赏他们可能会放弃它的情况。很棒的是,您可以轻松混合各种方法,或许可以专注于瓶颈查询优化。
    • 它说:* MyModel Class Not found* 当我尝试调用 Controller 时
    • 如果 MyModel 直接位于您的 Models 文件夹中,则不应该,但如果它位于子文件夹或其他位置,则需要从命令行运行 php artisan dump-autoload
    • 它在 autoload_map.php 文件中添加了一个新模型的entry。要么手动执行,要么运行自动加载转储命令
    【解决方案2】:

    只需删除“extends Eloquent”并使用 DB 类构建查询。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-15
    相关资源
    最近更新 更多