simple-crud / extra-fields
Extra fields for simple-crud package
v2.0.0
2019-08-24 23:12 UTC
Requires
- php: >=7.2
- cocur/slugify: ^3.0
- psr/http-message: ^1.0
- simple-crud/simple-crud: ^7.2
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.11
- phpunit/phpunit: ^8.0
- zendframework/zend-diactoros: ^1.3
README
Package with extra fields for simple-crud
Installation
This package is installable and autoloadable via Composer as simple-crud/extra-fields.
$ composer require simple-crud/extra-fields
File
Used to upload files into a directory and save the file name in the database. Detects instances of Psr\Http\Message\UploadedFileInterface
see here PSR-7 standard.
- First, you must define the uploads path used by the database, using the attribute
SimpleCrud::ATTR_UPLOADS
- On register the field, the
File
format will be asigned to any field named "file" or ending by "File" (for example: imageFile, avatarFile, etc) - By default, the file is saved in a subdirectory named as
[table]/[field]
. For example, the images of the fieldavatar
of the tableuser
will be saved in the folderuploads/user/avatar
. - The filename is slugified and converted to lowercase. For example, the file
My Picture.JPG
is renamed tomy-picture.jpg
.
use SimpleCrud\Fields\File; //Register the field File::register($simpleCrud); //Configure the directory to upload the files $simpleCrud->setConfig(File::CONFIG_UPLOADS_PATH, '/path/to/uploads'); //You can also configure the File field $simpleCrud->user->file ->setConfig('directory', '/path/to/uploads') //custom directory used instead the default File::DIRECTORY ->setConfig('relative_directory', '/images') //custom subdirectory (by default is /{table_name}/{field_name}) ->setConfig('save_relative_directory', true) //whether save the relative_directory in the database instead only the filename (false by default) //Get the data from the serverRequest $data = $request->getParsedBody(); $files = $request->getUploadedFiles(); //Create the new user $user = $simpleCrud->user->create([ 'name' => $data['name'], 'email' => $data['email'], 'file' => $files['avatar'], ]); //Save the data $user->save(); //Get the avatar file echo $user->file; // /user/avatar/image.jpg;
Slug
Used to save slugified values using cocur/slugify. On register the field, the Slug
format will be asigned to any field named "slug"
use SimpleCrud\Fields\Slug; //Register the field Slug::register($simpleCrud); //Create the new article $title = 'Hello world' $article = $simpleCrud->articles->create([ 'title' => $title, 'slug' => $title, ]); //Save the data $article->save(); //Get the slug echo $user->article->slug // hello-world