akanaan / model-files
一个用于Laravel的包,帮助将文件附加到模型中(图片、PDF等)。
1.0.0
2020-10-04 13:29 UTC
Requires (Dev)
- orchestra/testbench: ^6.1
This package is not auto-updated.
Last update: 2024-09-20 05:24:03 UTC
README
一个用于Laravel的包,帮助将文件附加到模型中(图片、PDF等)。
安装
使用包管理器 composer 安装Laravel模型文件。
composer require akanaan/model-files
运行迁移来创建表
php artisan migrate
用法
该包非常易于使用,只需将特性 HasFiles
添加到模型中,并为文件创建设置数组
<?php namespace App\Models; use AKanaan\ModelFiles\Traits\HasFiles; use Illuminate\Database\Eloquent\Model; class Product extends Model { use HasFiles; protected $attaches = [ 'logo' => [ 'disk' => 'public', 'path' => '/', ], 'images' => [ 'disk' => 'public', 'path' => 'images', ] ]; }
附加、分离、检索。
附加
<?php ... $product = Product::findOrFail($id); $product->attachFile('logo', $request->file('logo')); $product->attachFiles('images', [ $request->file('images.0'), $request->file('images.1'), $request->file('images.2') ... ]); ...
分离
<?php ... $product = Product::findOrFail($id); $product->detachFile('logo'); /* * Second param is optional (array of ids of files you want to delete) */ $product->detachFiles('images', [1, 2, 3]); ...
检索
<?php ... $product = Product::findOrFail($id); // returns instance of AKanaan\ModelFiles\Models\File $product->retrieveFile('logo'); // returns collection of AKanaan\ModelFiles\Models\File $product->retrieveFiles('images'); ...
公开URL
<?php ... $product = Product::findOrFail($id); $logo = $product->retrieveFile('logo'); $publicUrl = $logo->url(); ...