【问题标题】:Laravel Model Override Where Clause?Laravel 模型覆盖 Where 子句?
【发布时间】:2018-11-14 13:46:05
【问题描述】:

我正在开发一个现有的 laravel 应用程序我有很多查询所有查询都是在 laravel 查询构建器中编写的,现在我想添加另一个 where 子句 site_id(列)来过滤整个应用程序中的记录。我不想重写每个查询,我只是想要一种通用的方法来摆脱这个问题。我的应用程序查询就是这样写的。

Laravel 查询构建器

DB::table('users')->where('id', $user_id)->get()

模型查询生成器

AccountTag::join('ad as a', 'a.id', '=', 'abs.account_id')
         ->select('AccountTag.*', 'a.company_name')
         ->where(array("account_id" => 'xx'))
         ->get()
         ->toArray();

我们可以在基类中添加任何重写的方法并添加过滤器来获取所需的数据吗?

【问题讨论】:

    标签: php lumen-5.4


    【解决方案1】:

    全局作用域还是局部作用域呢?

    https://laravel.com/docs/5.7/eloquent#global-scopes

    看看Applying Global Scopes你可以告诉特定模型使用全局范围。

    您可以指示特定查询排除范围,请参阅删除全局范围

    【讨论】:

    • 您应该在答案中包含链接内容的相关部分。始终假设链接在被阅读时已经失效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-20
    • 2022-09-26
    • 2014-02-06
    • 2015-03-12
    • 2020-11-28
    • 2017-11-30
    • 2017-04-17
    相关资源
    最近更新 更多