From 0036553dfeea4431ee0fc97049ee548d0d0f1531 Mon Sep 17 00:00:00 2001 From: cuneytsenturk Date: Thu, 8 Feb 2018 17:41:12 +0300 Subject: [PATCH] close #205 Fixed: Deleting/saving attached files gives Whoops --- app/Models/Auth/User.php | 4 +-- app/Models/Company/Company.php | 4 +-- app/Models/Expense/Bill.php | 4 +-- app/Models/Expense/BillPayment.php | 4 +-- app/Models/Expense/Payment.php | 4 +-- app/Models/Income/Invoice.php | 4 +-- app/Models/Income/InvoicePayment.php | 4 +-- app/Models/Income/Revenue.php | 4 +-- app/Models/Item/Item.php | 4 +-- app/Traits/Media.php | 37 ++++++++++++++++++++++++++++ 10 files changed, 55 insertions(+), 18 deletions(-) create mode 100644 app/Traits/Media.php diff --git a/app/Models/Auth/User.php b/app/Models/Auth/User.php index 37bfbb170..d9ddabf01 100644 --- a/app/Models/Auth/User.php +++ b/app/Models/Auth/User.php @@ -11,13 +11,13 @@ use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Laratrust\Traits\LaratrustUserTrait; use Kyslik\ColumnSortable\Sortable; -use Plank\Mediable\Mediable; +use App\Traits\Media; use Request; use Route; class User extends Authenticatable { - use Filterable, LaratrustUserTrait, Notifiable, SoftDeletes, Sortable, Mediable; + use Filterable, LaratrustUserTrait, Notifiable, SoftDeletes, Sortable, Media; protected $table = 'users'; diff --git a/app/Models/Company/Company.php b/app/Models/Company/Company.php index c6e9eccd8..eb9f2190f 100644 --- a/app/Models/Company/Company.php +++ b/app/Models/Company/Company.php @@ -7,11 +7,11 @@ use EloquentFilter\Filterable; use Illuminate\Database\Eloquent\Model as Eloquent; use Illuminate\Database\Eloquent\SoftDeletes; use Kyslik\ColumnSortable\Sortable; -use Plank\Mediable\Mediable; +use App\Traits\Media; class Company extends Eloquent { - use Filterable, SoftDeletes, Sortable, Mediable; + use Filterable, SoftDeletes, Sortable, Media; protected $table = 'companies'; diff --git a/app/Models/Expense/Bill.php b/app/Models/Expense/Bill.php index 8f4a59b17..769d98ecc 100644 --- a/app/Models/Expense/Bill.php +++ b/app/Models/Expense/Bill.php @@ -7,11 +7,11 @@ use App\Traits\Currencies; use App\Traits\DateTime; use Bkwld\Cloner\Cloneable; use Sofa\Eloquence\Eloquence; -use Plank\Mediable\Mediable; +use App\Traits\Media; class Bill extends Model { - use Cloneable, Currencies, DateTime, Eloquence, Mediable; + use Cloneable, Currencies, DateTime, Eloquence, Media; protected $table = 'bills'; diff --git a/app/Models/Expense/BillPayment.php b/app/Models/Expense/BillPayment.php index 43326b77c..0f39e3806 100644 --- a/app/Models/Expense/BillPayment.php +++ b/app/Models/Expense/BillPayment.php @@ -5,11 +5,11 @@ namespace App\Models\Expense; use App\Models\Model; use App\Traits\Currencies; use App\Traits\DateTime; -use Plank\Mediable\Mediable; +use App\Traits\Media; class BillPayment extends Model { - use Currencies, DateTime, Mediable; + use Currencies, DateTime, Media; protected $table = 'bill_payments'; diff --git a/app/Models/Expense/Payment.php b/app/Models/Expense/Payment.php index 7bb846150..487a118d8 100644 --- a/app/Models/Expense/Payment.php +++ b/app/Models/Expense/Payment.php @@ -7,11 +7,11 @@ use App\Traits\Currencies; use App\Traits\DateTime; use Bkwld\Cloner\Cloneable; use Sofa\Eloquence\Eloquence; -use Plank\Mediable\Mediable; +use App\Traits\Media; class Payment extends Model { - use Cloneable, Currencies, DateTime, Eloquence, Mediable; + use Cloneable, Currencies, DateTime, Eloquence, Media; protected $table = 'payments'; diff --git a/app/Models/Income/Invoice.php b/app/Models/Income/Invoice.php index bde54d06a..73638bbec 100644 --- a/app/Models/Income/Invoice.php +++ b/app/Models/Income/Invoice.php @@ -8,11 +8,11 @@ use App\Traits\DateTime; use App\Traits\Incomes; use Bkwld\Cloner\Cloneable; use Sofa\Eloquence\Eloquence; -use Plank\Mediable\Mediable; +use App\Traits\Media; class Invoice extends Model { - use Cloneable, Currencies, DateTime, Eloquence, Incomes, Mediable; + use Cloneable, Currencies, DateTime, Eloquence, Incomes, Media; protected $table = 'invoices'; diff --git a/app/Models/Income/InvoicePayment.php b/app/Models/Income/InvoicePayment.php index a3a0d381e..427661bb2 100644 --- a/app/Models/Income/InvoicePayment.php +++ b/app/Models/Income/InvoicePayment.php @@ -5,11 +5,11 @@ namespace App\Models\Income; use App\Models\Model; use App\Traits\Currencies; use App\Traits\DateTime; -use Plank\Mediable\Mediable; +use App\Traits\Media; class InvoicePayment extends Model { - use Currencies, DateTime, Mediable; + use Currencies, DateTime, Media; protected $table = 'invoice_payments'; diff --git a/app/Models/Income/Revenue.php b/app/Models/Income/Revenue.php index 959e1ac8e..efd091394 100644 --- a/app/Models/Income/Revenue.php +++ b/app/Models/Income/Revenue.php @@ -7,11 +7,11 @@ use App\Traits\Currencies; use App\Traits\DateTime; use Bkwld\Cloner\Cloneable; use Sofa\Eloquence\Eloquence; -use Plank\Mediable\Mediable; +use App\Traits\Media; class Revenue extends Model { - use Cloneable, Currencies, DateTime, Eloquence, Mediable; + use Cloneable, Currencies, DateTime, Eloquence, Media; protected $table = 'revenues'; diff --git a/app/Models/Item/Item.php b/app/Models/Item/Item.php index c84e4d44a..ab0104666 100644 --- a/app/Models/Item/Item.php +++ b/app/Models/Item/Item.php @@ -6,11 +6,11 @@ use App\Models\Model; use App\Traits\Currencies; use Bkwld\Cloner\Cloneable; use Sofa\Eloquence\Eloquence; -use Plank\Mediable\Mediable; +use App\Traits\Media; class Item extends Model { - use Cloneable, Currencies, Eloquence, Mediable; + use Cloneable, Currencies, Eloquence, Media; protected $table = 'items'; diff --git a/app/Traits/Media.php b/app/Traits/Media.php new file mode 100644 index 000000000..6f6774b24 --- /dev/null +++ b/app/Traits/Media.php @@ -0,0 +1,37 @@ + + * + * Whether the model should automatically reload its media relationship after modification. + */ +trait Media +{ + use Mediable; + + /** + * Relationship for all attached media. + * @return \Illuminate\Database\Eloquent\Relations\MorphToMany + */ + public function media() + { + $media = $this->morphToMany(config('mediable.model'), 'mediable') + ->withPivot('tag', 'order') + ->orderBy('order'); + + // Skip deleted media if not detached + if (config('mediable.detach_on_soft_delete') == false) { + $media->whereNull('deleted_at'); + } + + return $media; + } +}