簡體   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