dev-master
9999999-dev
MIT
The Requires
The Development Requires
by Igor Kozhevnikov
1.0
1.0.0.0
MIT
The Requires
The Development Requires
by Igor Kozhevnikov
ΠΠ°ΠΊΠ΅Ρ ΠΏΠΎΠ·ΠΎΠ²Π»ΡΠ΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ ΠΈΠΌΠΏΠΎΡΡ/ΡΠΊΡΠΏΠΎΡΡ eloquent ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², (*1)
via composer, (*2)
"required" : { ... "huuuk/eloquent-export": "^1.0", ... },
Π΄ΠΎΠ±Π°Π²ΡΠ΅ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅Ρ, (*3)
'porviders' => [ // ... 'AdvancedEloquent\Export\ExportServiceProvider', // ... ],
ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΊΠ»Π°ΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊΠΎΡΠΎΡΡΡ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΊΡΠΏΠΎΡΠΈΡΠΎΠ²Π°ΡΡ, (*4)
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'); } }
ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ exportableAttributes
Π² ΡΡΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ½Π΅Π½ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π°ΡΡΠΈΠ±ΡΡΡ ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ.
ΠΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΏΡΠΎΡΡΠΎ ΡΠΊΠ°ΠΆΠΈΡΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΊΠΎΡΡΡΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅., (*5)
class User extends Model { // ... protected function exportableAttributes() { return [ 'name', 'age', 'city', 'posts', 'roles', ]; } // ... }
Π Π½Π΅ Π·Π°Π±ΡΠ΄ΡΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΊΠ»Π°ΡΡ ΡΡΠΈΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ., (*6)
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', ]; } }
```php namespace App;, (*7)
use AdvancedEloquent\Export\Model; // use Illuminate\Database\Eloquent\Model;, (*8)
class Post extends Model { protected $fillable = [ 'title', 'published_at', 'user_id', ];, (*9)
protected function exportableAttributes() { return [ 'title', 'published_at', ]; }
}, (*10)
```php 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'); } }
Π’ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΡΠΎΡΠ»Ρ, (*11)
$user = User::findOrFail($id); $json = $user->export(); // .... $user = User::import($json);
ΠΠ°ΠΊΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΡΠ·ΡΠΊΠΎΠ²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π§ΡΠΎΠ±Ρ ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΡΠΎΡΡΠΎ ΠΎΠΏΡΠ±Π»ΠΈΠΊΡΠΉΡΠ΅ ΠΈΡ , (*12)
# config php artisan vendor:publish --provider="AdvancedEloquent\Export\ExportServiceProvider" --tag="config" # view php artisan vendor:publish --provider="AdvancedEloquent\Export\ExportServiceProvider" --tag="views" # lang php artisan vendor:publish --provider="AdvancedEloquent\Export\ExportServiceProvider" --tag="lang"
Π’Π°ΠΊΠΆΠ΅ ΠΏΠ°ΠΊΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΎΡΡΡ Π΄Π»Ρ ΠΈΠΌΠΏΠΎΡΡΠ° ΡΠΊΡΠΏΠΎΡΡΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ»Π°ΡΡΡΡ ΡΠ°ΠΊ:, (*13)
<a href="{{route('export', ['type' => get_class($unit), 'id' => $unit->id])}}" class="btn btn-default">
ΠΈ ΠΈΠΌΠΏΠΎΡΡ(Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ ΡΠΎΡΠΌΡ), (*14)
@include('eloquent-export::import-form', [ // ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΠΈΠΏΡ(ΠΊΠ»Π°ΡΡΡ) ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, // ΡΡΠΎΠ±Ρ Π² ΡΠΎΡΠΌΡ ΠΈΠΌΠΏΠΎΡΡΠ° ΡΡΡΡΠΊΡΡΡΠ½ΡΡ ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠΉ Π½Π΅ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π»ΠΈ // Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠ»Π°ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ. // Π΅ΡΠ»ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π½Π΅ ΡΠΊΠ°Π·Π°Π½, ΠΈΠ»ΠΈ ΠΏΡΡΡΠΎΠΉ , ΡΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Π²ΡΠ΅ ΡΠΈΠΏΡ 'supportedTypes' => [ App\Unit::class ], // Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° // Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ 'additionalAttributes' => [ 'parent_id' => $patrentUnit->id ], // url Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»ΡΡΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² ΡΠ»ΡΡΠ°Π΅ // ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΈΠΌΠΏΠΎΡΡΠ°, Π΅ΡΠ»ΠΈ Π½Π΅ ΡΠΊΠ°Π·Π°Π½ ΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ redirect()->back() // Π² ΠΎΠ±ΠΎΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΏΡΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΌ ΠΈΠΌΠΏΠΎΡΡΠ΅ Π² ΡΡΠ΅ΡΠΈΡ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ // ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ success_import = true 'successRedirect' => route('units.edit', ['id' => $parentId->id]), ])
ΠΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΊΠ»ΡΠΈΡΡ Π² config/export.php
, (*15)
<?php return [ 'builtin_routes' => false, ];
MIT
MIT