laravel-laravel-prompting-patterns
Original:🇺🇸 English
Translated
Use Laravel-specific vocabulary—Eloquent patterns, Form Requests, API resources, jobs/queues—to get idiomatic framework code
7installs
Added on
NPX Install
npx skill4agent add noartem/laravel-vue-skills laravel-laravel-prompting-patternsTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →Laravel Prompting Patterns
Use Laravel's vocabulary to get idiomatic code. Generic requests produce generic solutions that don't leverage the framework.
Database Operations
Generic
"Get all active users with their posts"
Laravel-Specific
"Query active users with eager-loaded posts using Eloquent:
php
User::where('active', true)
->with('posts')
->get();Add a scope to User model: "
scopeActive($query)Relationships
"Set up a many-to-many relationship between Posts and Tags:
- Create pivot table migration
post_tag - Add in Post model
belongsToMany - Add in Tag model
belongsToMany - Use ,
attach(),detach()for management"sync()
Query Optimization
"Avoid N+1 on the posts index:
- Eager load and
authorrelationshipscategory - Use for comment totals
withCount('comments') - Add database indexes on and
published_at"category_id
Validation
Generic
"Validate the user input"
Laravel-Specific
"Create UserStoreRequest with validation rules:
php
public function rules(): array
{
return [
'email' => ['required', 'email', 'unique:users,email'],
'password' => ['required', 'min:12', Password::defaults()],
'name' => ['required', 'string', 'max:255'],
];
}Add custom error messages in method"
messages()Complex Validation
"Validate order creation:
- Use for product IDs
Rule::exists('products', 'id') - Validate nested items array: must be integer, min 1
items.*.quantity - Use for conditional shipping address
Rule::requiredIf() - Add custom rule for inventory check: "
new HasSufficientStock
API Endpoints
Generic
"Create an API for products"
Laravel-Specific
"Create RESTful product API:
- Resource controller: with apiResource routes
ProductController - Use for response transformation
ProductResource - Add for index endpoint with pagination
ProductCollection - Protect with Sanctum middleware:
auth:sanctum - Return 201 on create, 204 on delete
- Use and
ProductStoreRequestfor validation"ProductUpdateRequest
Pagination
"Paginate products API:
- Use in controller
Product::paginate(20) - Return with
ProductResource::collection($products) - Include meta: ,
total,per_page,current_pagelast_page - Support query parameter"
?page=2
Filtering
"Add filtering to products API:
- Accept query params
?category=electronics&min_price=100 - Use for conditional queries
when() - Extract to class for reusability
ProductFilters - Document query params in API docs"
Background Processing
Generic
"Send email after user registers"
Laravel-Specific
"Dispatch SendWelcomeEmail job after registration:
php
SendWelcomeEmail::dispatch($user)
->onQueue('emails')
->delay(now()->addMinutes(5));- Implement interface
ShouldQueue - Add and
$tries = 3$timeout = 30 - Handle failure in method
failed() - Tag job for Horizon: "
$tags = ['user:'.$user->id]
Queue Configuration
"Configure queue for payment processing:
- Use connection for payments queue
redis - Set
queue:work --queue=payments,default - Add to 90 seconds in config
retry_after - Monitor with Horizon dashboard"
Job Chaining
"Process order with job chain:
php
Bus::chain([
new ValidateInventory($order),
new ChargePayment($order),
new SendConfirmation($order),
])->dispatch();If any job fails, chain stops. Handle in callback."
catch()Referencing Documentation
Effective References
"Implement according to Laravel's Eloquent Relationships docs"
"Follow Laravel's Form Request Validation pattern"
"Use Laravel's API Resource pattern for response transformation"
"Configure queues per Laravel Queue docs"
Pattern Catalog
Models & Eloquent:
- Relationships: ,
hasMany,belongsTo,belongsToManymorphMany - Scopes: ,
scopeActivescopePublished - Accessors/Mutators: ,
get{Attribute}Attributeset{Attribute}Attribute - Casts:
protected $casts = ['published_at' => 'datetime']
Validation:
- Form Requests: ,
UserStoreRequestProductUpdateRequest - Rules: ,
required,unique:table,columnexists:table,column - Custom Rules: ,
new UppercaseRule::in(['admin', 'user'])
API:
- Resources: ,
UserResourceProductCollection - Pagination: ,
paginate(),simplePaginate()cursorPaginate() - Rate Limiting: middleware
throttle:60,1
Jobs & Queues:
- Jobs: ,
ShouldQueue,dispatch()dispatchSync() - Chains: ,
Bus::chain()Bus::batch() - Horizon: Tags, monitoring, failed job handling
Use Laravel's vocabulary. Get Laravel solutions.