rentalmanager / photos
Rental Manager Photos 包,可以推动基本系统,让您能够管理出租物业。
Requires
- php: ^7.1.3
- intervention/image: ^2.4
- kkszymanowski/traitor: ^0.2.0
- league/flysystem-aws-s3-v3: ^1.0
- league/flysystem-cached-adapter: ^1.0
Requires (Dev)
- phpunit/phpunit: >=5.4.3
- squizlabs/php_codesniffer: ^2.3
README
这是一个为 Rentbits 制作的包,便于维护和模块化管理出租列表。它包括所有迁移、模型和关系,以运行出租系统。
此包使用 Image Intervention 库和 league flysystem 包(用于 Rackspace、SFTP 和 AWS 访问)。因此,您无需直接在您的应用程序中安装它们。
安装、配置和使用
安装
通过 Composer
composer require rentalmanager/photos
配置
安装包后,它应该被 Laravel 自动发现。为了检查这一点,在您的终端中只需运行
$ php artisan
在那里您应该找到所有 rm:*
命令。
检查后的第一步是发布供应商
$ php artisan vendor:publish --tag="photos"
您可以在配置文件中设置缩略图大小、默认磁盘等。
之后,就取决于您了。如果您是一个勤奋的学习者,可以手动运行每个命令,但之后您只需简单地运行
$ php artisan rm:setup-photos
就是这样...
使用方法
此包用于在单独的表中存储照片。它将特质添加到物业和单元中,以绑定关系。
存储照片
您可以使用常规方式存储照片,使用 Eloquent ORM。
$photo = new Photo([...]); $photo->save();
当您以常规方式存储照片时,您可以像这样关联物业
$property->attachPhoto(1, 10);
其中第一个参数是照片的 ID,第二个是排序号。
或者您也可以轻松地分离物业的照片
$property->detachPhoto(1); // or $property->detachPhotos([1,2,3]);
因为我们已经将特质添加到物业和单元模型中,您可以通过以下方式获取照片对象
$photos = $object->getOrderedPhotos();
上述方法将按您给出的顺序返回照片。
要同步照片,您需要使用以下方法
$object->syncPhotos($photos);
$photos
是照片 ID 的数组。请注意,ID 的顺序最终将用于排序。这通常意味着如果您提供数组 [1,3,10,2]
- 照片将以这种顺序显示。
外观
此包提供了简单照片处理的方法。
(首先您需要在类中使用外观)
use RentalManager\Photos\Facades\Photos;
在您的类中。
您可以利用以下方法
自动图像路径恢复
如果您正在存储外部图像,您需要获取存储路径等信息。幸运的是,此包提供了一个简单的包装来实现这一点。
$url = 'https://media.equityapartments.com/images/c_crop,x_0,y_0,w_1920,h_1080/c_fill,w_1920,h_1080/q_80/4206-28/the-kelvin-apartments-exterior.jpg'; $photoElements = Photos::parseExternalPhoto($url); dump( $photoElements);
当然,您也可以启动缩略图生成器
$photo = Photo::find(1); $photo = Photos::generateThumbnails($photo);
或者如果您只想将原始图像存储到存储中,稍后再处理缩略图
$photo = Photos::upload($path_to_image);
或者如果您想自动上传和生成缩略图
$photo = Photos::upload($path_to_image, false, true); // the last param is thumbnail generator
您也可以提供自己的路径
$photo = Photos::upload($path_to_image, 'store/there/instead');
或者您可以生成自动路径 env/properties/{random}
$path = Photos::generatePath($id = false);
就是这样,朋友们。