PHP code example of it-devgroup / laravel-entity-file-table

1. Go to this page and download the library: Download it-devgroup/laravel-entity-file-table library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

it-devgroup / laravel-entity-file-table example snippets


$app->configure('entity_file_table');

php artisan entity:file:table:publish --tag=config

php artisan entity:file:table:publish --tag=migration

php artisan migrate

        \ItDevgroup\LaravelEntityFileTable\Providers\EntityFileTableServiceProvider::class,

    'providers' => [
        ...
        \ItDevgroup\LaravelEntityFileTable\Providers\EntityFileTableServiceProvider::class,
    ]

php artisan vendor:publish --provider="ItDevgroup\LaravelEntityFileTable\Providers\EntityFileTableServiceProvider" --tag=config

php artisan entity:file:table:publish --tag=migration

php artisan migrate



namespace App;

class CustomFile extends \ItDevgroup\LaravelEntityFileTable\Model\FileModel
{
}



namespace App;

class CustomFile extends \ItDevgroup\LaravelEntityFileTable\Model\FileModel
{
    protected $table = 'YOUR_TABLE_NAME';
    
    // other code
}



return [
    'delete' => 'File deletion error :path on disk :fileDriver',
    'delete_message' => 'File delete/replace error',
];

// $file - \ItDevgroup\LaravelEntityFileTable\Model\FileModel
// generate url from file
return \ItDevgroup\LaravelEntityFileTable\Helpers\FileHelper::urlFile($file);

// generate url from data
return \ItDevgroup\LaravelEntityFileTable\Helpers\FileHelper::url('file.jpg', 'public');

/**
 * @return Illuminate\Database\Eloquent\Relations\MorphOne
 */
public function image()
{
    return $this->morphOne(\ItDevgroup\LaravelEntityFileTable\Model\FileModel::class, 'model', 'model_type', 'model_id');
}

/**
 * @return Illuminate\Database\Eloquent\Relations\MorphMany
 */
public function images()
{
    return $this->morphMany(\ItDevgroup\LaravelEntityFileTable\Model\FileModel::class, 'model', 'model_type', 'model_id');
}



namespace App;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Illuminate\Database\Eloquent\Relations\MorphOne;

class User extends Model
{
    ...
    
    /**
     * @return MorphOne
     */
    public function image()
    {
        return $this->morphOne(\ItDevgroup\LaravelEntityFileTable\Model\FileModel::class, 'model', 'model_type', 'model_id');
    }
    
    /**
     * @return MorphMany
     */
    public function images()
    {
        return $this->morphMany(\ItDevgroup\LaravelEntityFileTable\Model\FileModel::class, 'model', 'model_type', 'model_id');
    }
}


// $path - url for file
$file = $service->getFileExternal($path);

// save file on filesystem and database
// $file - return \ItDevgroup\LaravelEntityFileTable\Model\FileModel
$service->save($file);
$service->save($file, true);

// save file only on filesystem
$service->save($file, false);

// save file only in database
$service->saveDB($file);

$file = $service->getFileById(1);

// delete from filesystem and database
// $file - \ItDevgroup\LaravelEntityFileTable\Model\FileModel
$service->delete($file);
$service->delete($file, true);

// delete only from filesystem
$service->delete($file, false);

// delete only in database
$service->deleteDB($file);

// $file1, $file2, ... - \ItDevgroup\LaravelEntityFileTable\Model\FileModel
// $files - Collection
$files = collect([$file1, $file2, ...]);
$service->deleteAll($files);
// or
// $user - model user
$service->deleteAll($user->photos);

$uploadFile = \Illuminate\Http\UploadedFile::fake()->create('test.jpg', 10240, 'image/jpeg');
$fileData = $service->upload($uploadFile, null, 'file.jpg');
$file = $service->getFile($fileData);
$file->model()->associate(\App\User::find(1));
$service->save($file);

$service->setFilenameGenerate(true);
$uploadFile = \Illuminate\Http\UploadedFile::fake()->create('test.jpg', 10240, 'image/jpeg');
$fileData = $service->upload($uploadFile, null, 'file.jpg');
$file = $service->getFile($fileData);
$file->model()->associate(\App\User::find(1));
$service->save($file);
$user = \App\User::find(1);
$service->save($file, false);
$user->avatar()->save($file);

$uploadFile = \Illuminate\Http\UploadedFile::fake()->create('test.jpg', 10240, 'image/jpeg');
$fileData = $service->upload($uploadFile, null, 'file.jpg');
$file1 = $service->getFile($fileData);
$uploadFile = \Illuminate\Http\UploadedFile::fake()->create('test.jpg', 10240, 'image/jpeg');
$fileData = $service->upload($uploadFile, null, 'file.jpg');
$file2 = $service->getFile($fileData);
$user = \App\User::find(1);
$service->save($file1, false);
$service->save($file2, false);
$service->deleteAll($user->photos);
$user->photos()->saveMany([$file1,$file2]);
$user->refresh(); // if need at once show result

$file = $service->getFileById(1);
$service->delete($file);