【问题标题】:Laravel using Eloquent and DB in the same ModelLaravel 在同一模型中使用 Eloquent 和 DB
【发布时间】:2019-11-15 22:38:50
【问题描述】:

我有一个名为 Bar 的模型,它扩展了 Laravel 的 Eloquent

class Bar extends Eloquent{

}

现在的问题是我需要在多个表之间进行一些连接,为此我想使用 Laravel 的 DB 类来提高性能(使用 eloquent 最终花费了我大约 750 个查询和 20 秒加载)。

我可以在扩展Eloquent 的同一模型中使用DB 吗?

如果没有,我应该创建另一个模型吗?

【问题讨论】:

  • 你可以在一个不扩展的类中同时使用 Eloquent 和 DB
  • 使用 eloquent 关系或查询构建器将具有几乎相同的性能。问题可能在于您如何查询关系。你能把这段代码贴在这里吗?

标签: php laravel


【解决方案1】:

您的模型应该扩展 Illuminate\Database\Eloquent\Model 而不是 Eloquent

Eloquent 基本上是 laravel 默认使用的 ORM

use Illuminate\Database\Eloquent\Model;

class Bar extends Model
{
    public function getFooAttribute()
    {
        return \DB::table('bars')->value('foo');
    }
}

您几乎可以在任何地方使用DB 外观来很好地执行查询生成器 SQL 语句

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-19
    • 2016-12-14
    • 2014-10-07
    • 2015-01-10
    • 2014-11-05
    • 1970-01-01
    • 2020-10-17
    • 2015-02-15
    相关资源
    最近更新 更多