0

嗨,我使用 InfyOm(Laravel 生成器)。我想在添加新记录时将随机字符串设置为变量键,但我不知道该怎么做。

按键控制器

public function store(CreatekeysRequest $request)
{
    $input = $request->all();

    $keys = $this->keysRepository->create($input);


    Flash::success('Added');

    return redirect(route('keys.index'));
}

我在带有 mutator 的密钥模型上生成字符串,但是当我编辑记录时,密钥总是改变。

按键型号

public function setDomainAttribute($value) {
    $this->attributes['domain'] = $value;
    $key = $this->attributes['key'] = Str::random(16);
    Flash::success("Key generated for {$value}<br><b>{$key}");
}    
4

1 回答 1

0

我不熟悉,InfyOm但我相信你可以像这样使用标准的 Eloquent 事件:

<?php
// models/Key.php
class Key
{
    public static function boot()
    {
        parent::boot();
        self::creating(function($model) {
            $model->key = Str::random(16);
        });
    }
}

上面的代码将key在您创建新的 Key 模型时设置该属性。

https://laravel.com/docs/7.x/eloquent#events

于 2020-05-29T09:57:59.880 回答