Installation:
composer require mopo922/laravel-treats
Add the service provider to config/app.php if using view layouts:
LaravelTreats\LaravelTreatsServiceProvider::class,
First Use Case:
LaravelTreats\Controller for built-in methods like index(), create(), store(), show(), edit(), update(), and destroy().
use LaravelTreats\Controller;
class PostController extends Controller {
// Inherits CRUD methods
}
LaravelTreats\Model for soft deletes, timestamps, and UUID support.
use LaravelTreats\Model;
class Post extends Model {
// Inherits traits like soft deletes
}
php artisan vendor:publish --provider="LaravelTreats\LaravelTreatsServiceProvider"
Then use extends treats::layouts.app in your Blade templates.LaravelTreats\Controller to auto-generate RESTful routes and methods. Customize logic in overridden methods.
class UserController extends Controller {
public function store(Request $request) {
// Custom store logic
}
}
Route::resource('posts', PostController::class) for automatic route registration.use SoftDeletes; trait. Add deleted_at column to DB.
class Post extends Model {
use SoftDeletes;
protected $dates = ['deleted_at'];
}
use HasUuid; trait for UUID primary keys.
class Post extends Model {
use HasUuid;
}
treats::layouts.app for consistent styling. Override sections like @yield('content').
@extends('treats::layouts.app')
@section('content')
<!-- Custom content -->
@endsection
treats::partials.form) for reusable UI.class AdminController extends Controller {
public function __construct() {
$this->middleware('auth:admin');
}
}
HasUuid is used before Model in inheritance chain to avoid primary key conflicts.deleted_at column in DB. Run migrations manually if not using Laravel’s migrate:
Schema::table('posts', function (Blueprint $table) {
$table->softDeletes();
});
php artisan route:list to debug overlapping routes from Route::resource().php artisan view:clear
deleted_at vs. deletedAt).LaravelTreats\Model or Controller to add domain-specific logic.
trait CustomSoftDeletes {
public function restoreWithData() { ... }
}
php artisan vendor:publish --tag=treats-views
register() or boot():
public function boot() {
View::composer('*', function ($view) {
$view->with('custom_data', 'value');
});
}
LaravelTreatsServiceProvider if not using views).@cache(['treats.layouts.app'], 60)
How can I help you explore Laravel packages today?