【问题标题】:Get value in closure Laravel 8在关闭 Laravel 8 中获得价值
【发布时间】:2021-09-17 23:02:19
【问题描述】:

我可以将不包含在 DB 中的表单属性传递给闭包吗? 目前,在模型中,我只从迁移文件中获取属性(或来自可填充数组的值)

我的代码:

protected static function booted()
{
    parent::boot();
    static::addGlobalScope(new UserAccessScope);
    static::creating(function ($model){
        dd($model);
    });
}

【问题讨论】:

  • 这不是最佳实践,但您可以使用 request() 方法获取请求字段。
  • 我需要在哪里定义请求?因为我尝试 add as a param to booted function,而是添加 $model 并添加为如下注释所示的用途。没有一种方法奏效

标签: php laravel closures laravel-8


【解决方案1】:

是的,可以使用use 关键字将属性传递给闭包。例如,如下所示:

protected static function booted()
{
    parent::boot();
    $test = "This is a test";
    static::addGlobalScope(new UserAccessScope);
    static::creating(function ($model) use ($test){
        echo $test;
        dd($model);
    });
}

【讨论】:

  • 但是如何将这个静态测试字符串从表单更改为我的属性?我需要在哪里定义请求?
【解决方案2】:

使用 request() 助手 - 但这不是最佳实践。

protected static function booted()
{
  parent::boot();
  static::addGlobalScope(new UserAccessScope);
  static::creating(function ($model) use ($test){
    $data = request()->input();
    dd($data);
  });
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多