Laravel模型不使用自定义创建方法

时间:2019-01-16 00:27:31

标签: laravel

我正在尝试在Image模型中定义一个自定义创建方法,以将文件上传到存储设备并为其指定唯一的文件名。

从5.4开始,我似乎找不到任何有关创建自定义方法的过程的信息。我检查了文档,然后按照他们说的做(我想)。请参见https://laravel.com/docs/5.4/upgrade“创建和强制创建方法”。

我的模特:

protected $fillable = [
    'name',
    'caption',
    'path'
];

public static function create(array $attributes, $image, $extension, $folder = null)
{
    die("It died.");
    $attributes['path'] = FileNameGenerator::getNewFilePath($extension);

    Storage::disk('s3')->put( $folder . $attributes['path'], File::get($image));

    $model = static::query()->create($attributes);
    return $model;
}

我在哪里称呼模型:

Auth::user()->image()->create([], $image, $extension, config('app.profile_pictures_path')); 

我收到一个错误,提示path没有默认值。

由于未调用die方法,因此好像完全忽略了该方法。我还尝试过更改函数的参数,使其看起来完全像文档中显示的一样,但是仍然会产生相同的结果。

很抱歉,如果这是一个新手问题。我真的看不到任何错误。

0 个答案:

没有答案