繁体   English   中英

Eloquent model 的 booted() 方法何时被调用?

[英]When does the booted() method of an Eloquent model get called?

我正在尝试添加一个简单的基于闭包的全局查询 scope:

// Order.php

protected static function booted()
{
    dd('here');
    static::addGlobalScope('test', function ($query) {
        $query->where('amount', '>', 50);
    });
}

但是,当我执行Order::toSql()时,只生成了这个 SQL 语句: "select * from "orders"" ,而不是我在全局查询 scope 中添加的附加约束。

此外,有史以来最强大的调试工具( dd()语句)没有被执行,这可能表明引导的方法没有被调用。

那么我做错了什么? 我完全按照文档所说的做了。 booted() 方法何时被调用?

在Laravel ( 7.x ) 的最后一个版本中, boot方法名称更改为仅booted ,因此请注意这一点,否则将无法正常工作。

请记住始终设置您在文档中使用的 Laravel 的版本(在右上角有一个下拉菜单,您可以在其中 select 版本)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM