* * @return void */ public function boot() { Model::preventLazyLoading(! $this->app->isProduction()); }在阻止延迟加载之后,当你的应用程序尝试延迟加载任何 Eloquent 关系时,Eloquent 将抛出Illuminate\Database\LazyLoadingViolationException异常。
*/public function boot(): void{ Model::preventLazyLoading(! $this->app->isProduction());}在阻止延迟加载之后,当你的应用程序尝试延迟加载任何 Eloquent 关系时,Eloquent 将抛出 Illuminate\Database\LazyLoadingViolationException 异常。你可以使用 handleLazyLoadingViolationsUsing 方法自定义延迟加载的违规行为。
首先,preventLazyLoading 方法接受一个可选的布尔参数,它代表是否需要禁用延迟加载。例如,你可能希望仅在非生产环境下禁用延迟加载,以便即使在生产环境中的代码意外出现延迟加载关系,你的生产环境也可以继续正常运行。一般来说,该方法应该在应用程序的 AppServiceProvider 的boot 方法中调用:...
shouldBeStrict()方法是启用以下所有功能的快捷方式: Model::preventLazyLoading(); Model::preventSilentlyDiscardingAttributes(); Model::preventsAccessingMissingAttributes(); 在资源路由中加载软删除模型 Andrew Brown贡献了使用以下路由语法加载软删除模型和资源路由的能力: // All endpoints Route::resource('users'...
文章译者
Model::preventLazyLoading(); Model::preventSilentlyDiscardingAttributes(); Model::preventsAccessingMissingAttributes();使用资源路由加载废弃模型Andrew Brown 提供了使用以下路由语法加载带有资源路由的废弃模型的能力:// 所有终结点 Route::resource('users', UserController::class)->withTrashed(); // 仅`显示...
*/ public function boot(): void { Model::preventLazyLoading(! $this->app->isProduction()); }此外,你可以通过调用 preventSilentlyDiscardingAttributes 方法来让 Laravel 在使用尝试填充一个不能填充的属性的时候抛出一个异常。这有助于防止在本地开发过程中尝试设置尚未到模型的 fillable 数组中的属性时出现...
您是否尝试了Model::preventLazyLoading(! app()->isProduction()),而不是Post::preventLazyLoading(!
Model::preventLazyLoading(! $this->app->isProduction()); Model::handleLazyLoadingViolationUsing(function ($model, $relation) { Bugsnag::notifyError("N+1 Query detected", sprintf("N+1 Query detected in %s::%s", get_class($model), $relation)); }); I have following query: select * ...
preventAccessingMissingAttributes