Want to take your software engineering career to the next level? Join the mailing list for career tips & advice Click here


Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402 (1 ratings)
Rated 5.0 out of 5
Subscribe to updates I use framework

Statistics on framework

Number of watchers on Github 11100
Number of open issues 227
Average time to close an issue about 6 hours
Main language PHP
Average time to merge a PR about 14 hours
Open pull requests 220+
Closed pull requests 662+
Last commit over 2 years ago
Repo Created over 7 years ago
Repo Last Updated over 2 years ago
Size 32.1 MB
Homepage http://laravel.com
Organization / Authorlaravel
Latest Releasev5.6.11
Page Updated
Do you use framework? Leave a review!
View open issues (227)
View framework activity
View on github
Fresh, new opensource launches πŸš€πŸš€πŸš€
Software engineers: It's time to get promoted. Starting NOW! Subscribe to my mailing list and I will equip you with tools, tips and actionable advice to grow in your career.
Evaluating framework for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)

Build Status Total Downloads Latest Stable Version License

About Laravel

Note: This repository contains the core code of the Laravel framework. If you want to build an application using Laravel 5, visit the main Laravel repository.

Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable, creative experience to be truly fulfilling. Laravel attempts to take the pain out of development by easing common tasks used in the majority of web projects, such as:

Laravel is accessible, yet powerful, providing tools needed for large, robust applications. A superb combination of simplicity, elegance, and innovation gives you a complete toolset required to build any application with which you are tasked

Learning Laravel

Laravel has the most extensive and thorough documentation and video tutorial library of any modern web application framework. The Laravel documentation is in-depth and complete, making it a breeze to get started learning the framework.

If you're not in the mood to read, Laracasts contains over 1100 video tutorials covering a range of topics including Laravel, modern PHP, unit testing, JavaScript, and more. Boost the skill level of yourself and your entire team by digging into our comprehensive video library.


Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the Laravel documentation.

Code of Conduct

In order to ensure that the Laravel community is welcoming to all, please review and abide by the Code of Conduct.

Security Vulnerabilities

If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell via taylor@laravel.com. All security vulnerabilities will be promptly addressed.


The Laravel framework is open-sourced software licensed under the MIT license.

framework open issues Ask a question     (View All Issues)
  • over 3 years getForeignKey on Model does not depend on Primary Key
  • over 3 years SES Transport not firing sendPerformed, and not getting MessageID
  • over 3 years Variables persists when testing
  • over 3 years PDO::prepare(): MySQL server has gone away
  • over 3 years Database DateTime binding - incorrect timezone
  • over 3 years Pagination does not work when use having in query builder
  • over 3 years Builder::withCount() ignores HAVING condition
  • over 3 years imap expunge errors cause segfault (b/c of errorHandler)
  • over 3 years Laravel 5.3 Nested Collection methods cause CLI to crash?? Error Handler might be needed.
  • over 3 years Constraints on eager-loaded hasMany doesn't retrieve data correctly
  • over 3 years Dots in cookie name being replaced to underscores
  • over 3 years hasManyThrough intermediate table not apply global scope defined on model
  • over 3 years Insert or update Chinese character on Microsoft SQL Server will return ????
  • over 3 years Redis exception on Auth
  • over 3 years hasManyThrough relation creating query with wrong values when localKey is other than 'id'
  • almost 4 years Executing a migration during testing changes the default connection to the one used in the migration
  • almost 4 years Migration error using SQL Server
  • almost 4 years Mail config for developing and testing: "Always CC/BCC" is missing
  • almost 4 years [5.3.13] artisan migration issue
  • almost 4 years [5.3] Pusher authentication across domains
  • almost 4 years paginate method generate wrong sql when pass in second parameter "columns" more values
  • almost 4 years [5.3] Deferring write connection doesn't work
  • almost 4 years withCount() on belongsToMany will include Pivot table
  • almost 4 years [5.3] Memcached + Queue + RestartCommand
  • almost 4 years [5.3 and below] getDirty() does not handle date columns right
  • almost 4 years [5.1.11] Problem using `parseTable` with PostgreSQL and schemas
  • almost 4 years [5.3] Eloquent: Should boolean attribute casting apply when updating the DB?
  • almost 4 years [5.3] @push order isn't correct
  • almost 4 years union and pagination creates wrong sql query making it unusable
  • about 4 years Getting β€œInvalid sql_display_size” querying a table with VARBINARY columns
framework open pull requests (View All Pulls)
  • [5.2] Change Model::fresh() parameter type
  • [5.2] KeyGeneratorCommand : no need to replace $content
  • [5.2] Add seeText and dontSeeText methods
  • [5.2] assert that after callback works with correct validator instance
  • [5.3] Use the validator's validate method in ValidatesRequests
  • [5.1] Move CONTRIBUTING.md and add Github templates for PR and issues
  • [5.2] Add windows support for withoutOverlapping in scheduled tasks (re-submit of #12353)
  • [5.2] Use the proper application namespace in HomeController when "make:auth"
  • [5.3] Support array in Collection::where
  • [5.1] Fix postgres union clause
  • [5.2] Container can get contextual dependency for method by looking at method's class object
  • [5.3] Match 'as' option functionality in route resources to the functionality of route group's 'as' option.
  • [5.2] Make use of static::class
  • [5.2] Refactor InteractsWithPages
  • [5.2] Add array support to required_if validation rule.
  • [5.3] implement migrateExpiredJobs with eval
  • [5.2] Validation performance optimisation
  • [5.2] Validate array size of implicit attributes
  • [5.2] In the Unique validation rule, allow ignoring an id using an array key
  • [5.2] Migration tags
  • Forget key when key exists
  • [5.3] Add authentication check to the Authorize middleware
  • [5.2] Don't query relationship when the parent key is null for HasOne & HasMany
  • [5.2] Adds a transpose() and passes() methods to the Collection object, and transpose() to Arr.
  • [5.3] Consider integer values while binding pdo params
  • [5.3] Fixes for redis queue driver
  • [5.2] Allows developers to traverse their query result via a cursor
  • [5.2] Add ability to combine two validators into a single instance
  • [5.2] ResourceRegistrar where patterns
  • [5.2] Fix postgres Schema::hasTable();
  • [5.2] Fix adding implicit rules via sometimes() method
  • [5.2] Add support for testing Eloquent model events
  • [5.3] Extending Blade's looping functionality
  • [5.3] consistent return from ::make() & ::create()
  • [5.2] Put the payload column of jobs table to the end of insert statements.
  • [5.2] Use SymfonyExceptionHandler@getHtml method to convert exception
  • [5.3] Change group route namespace global scope merge style
  • [5.2] Allow custom validators to be called with out function name
  • [5.2] Validate Uploaded Image Dimensions
  • [5.3] --timeout option for queue:work command
  • [5.2] Add relationship subquery count
  • [5.2] Stabilized table aliases for self joins by adding count
  • [5.3] Allow multiple folders for migrations
  • [5.3] [WIP] Custom Type Casting
  • [5.2] Added ability to use custom classes for pivot models
  • [5.2] Improved exception output for migrations and use DB Transactions
  • [5.2] Added correct MySQL JSON bool handling and updating grammar
  • [5.2] Fix SparkPost doesn't send attachments
  • [5.3] Unify join and builder syntax
  • [5.2] Helper function to clear routes resources
  • [5.3] Implement route binding substitution using a middleware
  • [5.2] Fix issue #11815
  • [5.2] Added support for different log levels.
  • [5.2] Fire the RouteMatched event on route:list command
  • [5.2] Impliment nested wheres in has queries
  • [5.1] Auth::id() don't get $id from Recaller
  • [5.2] Model accessors used in custom relationship columns
  • [5.3] Broadcasting Improvements
  • [5.3] Adding support for new Broadcast Support Provider
  • [5.1] Yet another another attempt to fix Swift Mailer related SSL failures (Issue #4573)
  • [5.1] Yet another attempt to fix Swift Mailer related SSL failures (Issue #4573)
  • [5.2] Adds idType to model in order prevent assumptions about ids
  • [5.3] Add the ability to disable caching of compiled Blade templates
  • [5.2] Cache Command - Option to remove tagged items
  • [5.1] Adding support for StreamOptions
  • [5.3] Add full stubbing to policy generator
  • [5.2] Add getValidationData method to FormRequest
  • [5.3] Option to refresh specific number of migrations.
  • [5.2] Implemented job:dispatch and job:list artisan commands.
  • [5.2] Add pipe function to collection
  • [5.2] Remove need to release jobs that have been reserved too long
  • [5.2] add moveDirectory method
  • [5.2] New method: SessionStore::increment
  • [5.1] Fix morphTo eager loading
  • [5.4] Added ability to use custom classes for pivot models
  • [5.2] Pagination optimize
  • [5.2] Touch owners on save only if model is dirty
  • [5.1] Fix MySQL multiple-table DELETE error
  • [5.2] Allow to pass multiple arguments to Authorize
  • [5.3] Check for dates/other casts when plucking
  • [5.2] Add loadOnly() method to only load specified relations
  • [5.3] Check for api_token in headers.
  • [5.2][bugfix] fix #14397
  • [5.1] Url::to() from http://example.com/index.php
  • [5.4] Check for api token in request headers
  • [5.3] Add support for testing eloquent model events
  • [5.3] Retry connecting in redis
  • [5.3] Use \Doctrine\DBAL\Driver\PDOConnection if available
  • [5.2] Optimize Filesystem moveDirectory
  • [5.4] Add a simple transformer.
  • [5.3] Allow routes to be registered fluently
  • [5.3] Implement new password validation rule
  • [5.2] Allow transform a collection within Paginator
  • [5.3] Added ability to define custom class to use for pivot models.
  • [5.2] Create factory modifiers
  • [5.3] [Draft] Introduce Illuminate\Notifications\Message (with breaking changes)
  • [5.3] Allow passing a where condition directly to Builder::when()
  • Amend keyBy() method w/ callback for duplicates
  • [5.3] Fix incorrect Eloquent models serialization
  • [5.3] Add visitRoute() to...
  • [5.3] Update laravel urls with https
  • [5.2] Allow collections to be created from objects that implement Traversable
  • [5.3] Migrations command refactoring
  • [5.3] [WIP] Added support for Twitter channel notifications
  • [5.3] Sign mail closure serialization by default
  • [5.3] Changed the way after/before queue job events work
  • [5.2] Fix aggregate functions
  • [5.3] Add relation not found exception
  • [5.3] Collection transpose implementation
  • [5.3] Collection mapToAssoc implementation
  • [5.3] Handle deadlocks by (optionally) re-attempting transactions
  • [5.1] Revert: Handle InnoDB Deadlocks By Re-Attempting Transactions
  • [5.3] Added username, icon and channel options for Slack Notifications
  • [5.3] Added support for PhpRedis
  • [5.3] Added with* to Mailable
  • [5.3] Better (?) exception message scheme
  • [5.3] Add ability to disable touching of related model when toggling relation
  • [5.3] Add --path option support for artisan migrate:rollback/refresh/reset fixes #13631
  • [5.4] Add support for PhpRedis
  • [5.3] Fire BelongsToMany relation events for attach/detach/sync/toggle
  • [5.3] [proposal] Add fluent interface for the dimensions rule
  • Take alternative filename for composer.json from environment
  • Adds JSON alias methods for testing JSON APIs.
  • [5.3] Added ability to better control middleware during tests
  • [5.4] Cache fix 15578
  • [5.3] Crontab add runAsynBackground to run all the tasks concurrently(#15720)
  • [5.3] Add ability to pass an array to Notification Fakes
  • [5.3] Custom Paginator and LengthAwarePaginator toArray formats
  • [5.1] Fix contextual bindings when instances and aliases are involved
  • [5.3] Added database slave failover
  • [5.1] beginTransaction(): Reconnect if connection is lost
  • Directly return \Ramsey\Uuid\UuidInterface::toString()
  • Update CHANGELOG-5.3.md
  • [5.3] Add support for Collection's `contains` to look in single-dimension arrays for a key/value pair
  • [5.3] Do not hydrate files on Validation
  • [5.4] Use parent connection if related model doesn't specify one
  • [5.3] Updates to configuration loader
  • [5.3] bind double as PDO::PARAM_INT
  • [4.2] Add support for PHP7 throwables
  • [5.3] Fix issue where PDO::prepare() returning false results in fatal error
  • [5.3] Implementing the @switch statement
  • [5.3] dont rollback to savepoints on deadlock
  • [5.3] [WIP] Convert rule objects to array
  • [5.3] [WIP] Add a sanitizer
  • [5.3] Improved PolicyMakeCommand to work better with namespaces
  • Added weak date validation
  • [5.3] Add doc-block for code auto-complete
  • Add caching method for Eloquent models.
  • [5.4] Add @wrapper/@endwrapper statement to Blade templates
  • [5.3] Allow loading specific columns while eagerloading
  • [5.4] Don't reverse the pushed data
  • [5.4] Include the password hash in auth session
  • [5.3] Custom casting of eloquent properties
  • [5.4] Tweak DatabaseQueue to not require locking
  • [5.3] Allow Eloquent has one relations to return a default new model
  • [5.1] Custom Error Messages for Unauthorized Access
  • [5.3] HasOneThrough relationship
  • [5.3] Add custom email subject support to scheduled tasks
  • [5.3] Make test methods chainable
  • [5.3] app:name - add file exists check for ModelFactory.php during namespace replacement
  • [5.3] Implement blade macros feature
  • [5.4] Localize routes
  • [5.3] Fix to prevent recursive where clause addition for chunkById
  • [5.3] Resource routes uri translations
  • [5.3] Add optional compression for redis store
  • [5.4] Fix flash data on redirect() for tests
  • [5.4] Database MySql Schema: add mysql fulltext index support
  • [5.4] Expose which validation rule fails
  • [5.4] Ability to pass data to the view when rendering a paginator
  • [5.4] Execute queries with lock only in write database
  • [5.4] Can't Wrap DB Names Containing Spaces When Aliasing
  • [5.4] Events : remove remaining priority code
  • [5.4] Add support for numeric keys in validation rules
  • [5.4] Add isSoftDeleting() method
  • [5.4] All tests have been namespaced
  • [5.4] Crypto-based password resets
  • [5.4] Support column alias in Eloquent chunkById
  • [5.4] Fix injection placement of dependencies for routing method parameters
  • [5.3] Idea to test mailable views
  • [5.4] clone query without order by for aggregates
  • [5.5] Add a validate method onto the request
  • [5.4] Implement `until` method on the `EventFake`
  • [5.5] Validate `on` to true for default checkbox value
  • [5.5] Adds inline eloquent factory states
  • [5.4] Added second $encoding parameter to length
  • [5.4] Allow for expiry without nx or xx set
  • [5.4] add a "second local key" to HasManyThrough
  • [5.5] Eloquent object casting
  • Add hasAny() method to Request
  • Add Eloquent Features: withSum,withMax,withMin,withAvg etc.
  • [5.5] Simplify queueing notifications
  • [5.4] Add str_after helper function
  • [5.5] Prepare exception handling for PHP7+
  • [5.5] Improved support for custom/changing directory structures
  • [5.5] Relocate the existence check for factory definitions
  • [5.5] allows array or multiple params for hasAny helper
  • [5.6] Assert that response contains strings in a specific order
  • [5.7] Detect connection errors also
  • [5.7] Escape operators where possible
  • [5.6] Fix docblock in CacheSchedulingMutex
  • [5.6] Revert "allow 0 block time"
  • [5.6] add diff as custom date casting
  • [5.6] brpoplpush for redis queues
  • [5.6] Redis events
  • [5.6] Fix an issue where delayed jobs in L5.5 fail to run in L5.6
  • [5.6] Add sortKeys and sortKeysDesc methods to Collection.
  • [5.7] Multiple mail connections
  • [5.6] Add filledAny method to Request
  • [5.6] Require all migrations files before checking if a migration exists
  • [5.6] Features/database migrator print realtime
  • [5.6] Add 'after' callback for model factories
  • [5.6] Add ability to seed Arr::shuffle()
  • [5.6] Add static getTableName helper
  • [5.7] Make MessageBag constructor behaviour consistent with `add`
  • [5.6] Optimize query builder's pluck() ,method
  • [5.6] Improving asset loading
  • [5.6] Adding fromSub and fromRaw methods to query Builder
  • [5.6] Disable model touching
  • [5.7] Support dot notation in Request object when using ArrayAccess
  • [5.7] Added test helper to assert that a Job has been queued with a Chain
framework questions on Stackoverflow (View All Questions)
  • foreign key missing - Entity framework code first
  • Ajax.BeginForm in MVC 4 to upload files to with entity framework model?
  • anyone know about Apache click framework
  • How can I make Entity Framework map a DbDataReader?
  • Getting logging/debugging information out of Felix framework?
  • materialize framework margin between columns
  • Error: Failure in Telerik entity framework optimistic Concurency with SaveChanges()?
  • Ionic Framework + Composer?
  • Entity Framework Many To Many With Two Self Referencing Composite Keys
  • Cordova Plugin Media in Ionic Framework compatibillity issues
  • Django Rest Framework Token Authentication
  • Load related entities (Expand) without Entity Framework
  • Python 3 CLI Framework/UI Library
  • How to perform CRUD operations for a Model with a list of complex types with Entity Framework Code First?
  • HTTP Post request body marshaling for Play Framework
  • How are people unit testing with Entity Framework 6, should you bother?
  • Transform data using c# during Entity Framework migration
  • python version for robot framework selenium2library (Windows10)
  • How to auto reload in Java Chrominum Embedded Framework?
  • SQL Server ISNULL and Entity Framework stored procedures
  • IBDesignable controls in a framework
  • Silverstripe Framework Model Admin, Data Object Relations and OptionsetField saving into the Database
  • How to support API versioning with Slim framework
  • Build an iOS app for web-app written using the Ruby on Rails framework
  • I can't seem to install django framework with pip on python 3.5.1, keep getting this error
  • Retrieve HTML-data with Robot framework and xpath
  • Where to find good tutorials for Spring framework?
  • Entity framework in separate dll
  • Play Framework 2.4: Getting the id of a button
  • Rails console equivalent with play framework 2.4.x?
framework list of languages used
framework latest release notes
v5.6.11 v5.6.11


  • Fix for Carbon 1.24.1 (#23464)
v5.6.10 v5.6.10


  • Added Blueprint::dropMorphs() (#23431)
  • Added Mailable::attachFromStorage() methods (0fa361d)
  • Added orWhere*() builder methods for day, month and year (#23449)


  • Added v-pre to dropdown link in app.stub (98fdbb0)
  • Handle more JSON errors gracefully when JSON_PARTIAL_OUTPUT_ON_ERROR is set (#23410, 972b82a)
  • Add bubble, permission and locking config to single/daily log (#23439)
  • Use Str::contains() instead of str_contains() (ae4cb28)


  • Fixed unique() call in Validator::validate() (#23432)
  • Fix for Carbon 1.24.0 (67d8a4b)
v5.5.39 v5.5.39


Other projects in PHP