PHP code example of advanced-eloquent / export

1. Go to this page and download the library: Download advanced-eloquent/export 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/ */

    

advanced-eloquent / export example snippets


'porviders' => [
    // ...
    'AdvancedEloquent\Export\ExportServiceProvider',
    // ...
],

namespace App;

use AdvancedEloquent\Export\Model;
// use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    protected $fillable = [
        'name',
        'age',
        'city_id',
    ];
    
    public function city()
    {
          return $this->belongsTo('App\City');
    }
    
    public function posts()
    {
          return $this->hasMany('App\Post');
    }
    
    public function roles()
    {
          return $this->belongsToMany('App\Role');
    }
}

class User extends Model
{
   // ...
    protected function exportableAttributes()
    {
          return [
              'name',
              'age',
              'city',
              'posts',
              'roles',
          ];
    }
    // ...
}

namespace App;

use AdvancedEloquent\Export\Model;
// use Illuminate\Database\Eloquent\Model;

class City extends Model
{
    protected $fillable = [
        'name',
        'population',
    ];
    
    protected function exportableAttributes()
    {
          return [
              'name',
              'population',
          ];
    }
}

namespace App;

use AdvancedEloquent\Export\Model;
// use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    protected $fillable = [
        'title',
        'published_at',
        'user_id',
    ];
    
    protected function exportableAttributes()
    {
          return [
               'title',
               'published_at',
          ];
    }
}

namespace App;

use AdvancedEloquent\Export\Model;
// use Illuminate\Database\Eloquent\Model;

class Role extends Model
{
    protected $fillable = [
        'name',
        'permission',
    ];
    
    protected function exportableAttributes()
    {
          return [
              'name',
              'permission',
          ];
    }
    
    public function users()
    {
          return $this->belongsToMany('App\User');
    }
}

$user = User::findOrFail($id);
$json = $user->export();

// ....

$user = User::import($json);

<a href="{{route('export', ['type' => get_class($unit), 'id' => $unit->id])}}" class="btn btn-default">

@    [
        // указываются поддерживаемые типы(классы) объектов, например,
        // чтобы в форму импорта структурных подразделений не импортировали
        // другой класс, например  объекты информатизации.
        // если параметр не указан, или пустой , то поддерживаются все типы
        'supportedTypes' => [ App\Unit::class ], 
        // дополнительные атрибуты импортируемого объекта
        // необязательный параметр
        'additionalAttributes' => [ 'parent_id' => $patrentUnit->id ],
        // url на который будет перенаправляться пользователь в случае
        // успешного импорта, если не указан то используется redirect()->back()
        // в обоих случаях при успешном импорте в ссесию записывается
        // переменная success_import = true
        'successRedirect' => route('units.edit', ['id' => $parentId->id]),
    ])

 
return [
    'builtin_routes' => false,
];