(v2): Automatic resolving on route binding (#3035)

* Resolve route binding

* add withTrashed() property

* Remove route binds from the Provider
This commit is contained in:
Benjamin Beganović 2019-11-05 00:22:36 +01:00 committed by David Bomba
parent 9050d4e564
commit 11690ae50e
2 changed files with 12 additions and 93 deletions

View File

@ -150,6 +150,16 @@ class BaseModel extends Model
return new ClientSettings($this->settings);
}
/**
* Retrieve the model for a bound value.
*
* @param mixed $value
* @return \Illuminate\Database\Eloquent\Model|null
*/
public function resolveRouteBinding($value)
{
return $this
->withTrashed()
->where('id', $this->decodePrimaryKey($value))->firstOrFail();
}
}

View File

@ -40,98 +40,7 @@ class RouteServiceProvider extends ServiceProvider
public function boot()
{
//
parent::boot();
Route::bind('client', function ($value) {
$client = \App\Models\Client::withTrashed()->where('id', $this->decodePrimaryKey($value))->firstOrFail();
return $client;
});
Route::bind('user', function ($value) {
$user = \App\Models\User::withTrashed()->where('id', $this->decodePrimaryKey($value))->firstOrFail();
return $user;
});
Route::bind('invoice', function ($value) {
return \App\Models\Invoice::withTrashed()->where('id', $this->decodePrimaryKey($value))->firstOrFail();
});
Route::bind('recurring_invoice', function ($value) {
return \App\Models\RecurringInvoice::withTrashed()->where('id', $this->decodePrimaryKey($value))->firstOrFail();
});
Route::bind('recurring_quote', function ($value) {
return \App\Models\RecurringQuote::withTrashed()->where('id', $this->decodePrimaryKey($value))->firstOrFail();
});
Route::bind('quote', function ($value) {
return \App\Models\Quote::withTrashed()->where('id', $this->decodePrimaryKey($value))->firstOrFail();
});
Route::bind('payment', function ($value) {
return \App\Models\Payment::withTrashed()->where('id', $this->decodePrimaryKey($value))->firstOrFail();
});
Route::bind('product', function ($value) {
return \App\Models\Product::withTrashed()->where('id', $this->decodePrimaryKey($value))->firstOrFail();
});
Route::bind('company', function ($value) {
return \App\Models\Company::withTrashed()->where('id', $this->decodePrimaryKey($value))->firstOrFail();
});
Route::bind('company_gateway', function ($value) {
return \App\Models\CompanyGateway::withTrashed()->where('id', $this->decodePrimaryKey($value))->firstOrFail();
});
Route::bind('companies', function ($value) {
return \App\Models\Company::withTrashed()->where('id', $this->decodePrimaryKey($value))->firstOrFail();
});
Route::bind('account', function ($value) {
return \App\Models\Account::withTrashed()->where('id', $this->decodePrimaryKey($value))->firstOrFail();
});
Route::bind('client_contact', function ($value) {
return \App\Models\ClientContact::withTrashed()->where('id', $this->decodePrimaryKey($value))->firstOrFail();
});
Route::bind('expense', function ($value) {
return \App\Models\Expense::withTrashed()->where('id', $this->decodePrimaryKey($value))->firstOrFail();
});
Route::bind('invoice_invitation', function ($value) {
return \App\Models\InvoiceInvitation::withTrashed()->where('id', $this->decodePrimaryKey($value))->firstOrFail();
});
Route::bind('recurring_invoice_invitation', function ($value) {
return \App\Models\RecurringInvoiceInvitation::withTrashed()->where('id', $this->decodePrimaryKey($value))->firstOrFail();
});
Route::bind('quote_invitation', function ($value) {
return \App\Models\QuoteInvitation::withTrashed()->where('id', $this->decodePrimaryKey($value))->firstOrFail();
});
Route::bind('task', function ($value) {
return \App\Models\Task::withTrashed()->where('id', $this->decodePrimaryKey($value))->firstOrFail();
});
Route::bind('tax_rate', function ($value) {
return \App\Models\TaxRate::withTrashed()->where('id', $this->decodePrimaryKey($value))->firstOrFail();
});
Route::bind('proposal', function ($value) {
return \App\Models\Proposal::where('id', $this->decodePrimaryKey($value))->firstOrFail();
});
Route::bind('group_setting', function ($value) {
return \App\Models\GroupSetting::where('id', $this->decodePrimaryKey($value))->firstOrFail();
});
}
/**