- Added
Model::destroymethod to Eloquent. - Touch owning models on delete.
- Added
Str::macromethod. - Calling
updateon a Model instance will fill and update that model. - Allow specification of methods when pushing to Queue (
Queue::push('Class@method')). - Removed HTML from default formatting in MessageBag.
- Made Eloquent
deletingevent halting. - Added
Auth::basicfor quickly implementing HTTP Basic authentication. - Use Predis as our Redis back-end. Supports pipelining, client side sharding / clustering.
- Implement sectionable caching across all drivers which support incrmeent / decrement.
- Added
Redirect::homemethod from Laravel 3. - Added
Crypt::setKey,Crypt::setCipher, andCrypt::setMode. - Allow "lazy" eager loading from an individual model:
$user->load('orders.lines');. - Added
renameColumnsupport to schema builder. - Added
dropColumnsupport to SQLite schema builder. - Added
urloption to configuration for use by the Artisan CLI. dropColumnnow supports dynamic argument lists.- Pass
routeandrequestto Closure based controller before filters. - Added
Auth::basicStatelessmethod for easier API integration with basic auth. - Renamed
Auth::statelessandAuth::basicStatelesstoAuth::onceandAuth::onceBasic. - Added named view implementation which was in Laravel 3.
- Migrated entire session back-end to Symfony HttpFoundation Session. The
nativedriver should now be used in place of thecookiedriver. All other drivers are available and work the same. New sessions will not be backwards compatible after updating. - Renamed
Session::getTokentoSession::token. - Added a few more helper methods to the
Collectionclass.
- Added
Model::creating(Closure)andModel::updating(Closure)methods for hooking into Eloquent save events. - Added
Model::saving(Closure)andModel::saved(Closure)methods for hooking into Eloquent save events. - Added
Event::queueandEvent::flush. - Added a
Strclass in support component. Adopted Patchwork UTF-8 to provide solid UTF-8 handling for the framework. - Allow Eloquent attributes to be accessed by camelCase in addition to snake_case.
- Added
App::environmentmethod. - Added
resolvingmethod to IoC container for catching resolutions. - Added
shouldReceiveandswapmethods to facade. - Added
boundmethod to the IoC container. - Utilize
checkdatein thedatevalidation rule to make sure the date is actually valid. - Allow controller actions in base classes to be routed via
Route::controller. - Encode queue payloads as JSON instead of serializing, to make the Queue place nicely with other languages.
- Added
Model::created(Closure)andModel::updated(Closure)methods for hooking into Eloquent post-save events. - Added
Model::bootstatic method for a one time "booting" method for models. - Passing
nullinto awherecall will now short-cut intowhereNull. - Changed Blade
{{ }}to not escape. Made the triple braces escape. - Added
DB::getNameto get the configured name of the connection. - Made Eloquent casing agnostic. Will use whatever casing the properties use. Added
snakeAttributesproperty to model (defaulttrue) to control casing on relationships when usingtoArray. - Added
restart identityto PostgrestruncateSQL. - Added
Log::listencallback andilluminate.logevent which can be hooked into for custom logging handling. - Allow blade templates to be configurable (advanced usage). Can swap out
{{ }}for[[ ]]as an example, to avoid conflicts with other engines (such as handlebars). camel_casefunction now returns strings with lower-case leading letters. Previous behavior of this function can be found in newstudly_casehelper.- Added
findmethod to Eloquent Collection. - When using MySQL, new
aftermethod may be used when building Schema columns to specify column order. ($t->string('name')->after('foo')) - Added new
--timeoutoption toqueue:listencommand. - Fixed bug that sometimes caused custom view engines to not be properly utilized.
- Added
URL::previousmethod for getting previous URL fromreferer$_SERVER variable. - Renamed
pathhelper tourlfor consistency. - Added
App::shutdownmethod for registering callbacks to be fired at very end of both web and Artisan life-cycle. - Added
saveManyandcreateManyto 1:1, 1:*, and : relations. - Support for IronMQ message queue added. Driver is
iron. - Added
domainandpathoptions to session configuration. Named priorpathoption tofiles. - Add collation and character set to create table statements in MySQL schema builder.
- Allow session payload cookie name to be configurable.
shouldReceivemay now be called on a Facade multiple times without usinggetMock.- Allow default value to be passed to Eloquent collection
findmethod. - Intelligently parse resource routes containing slashes.
Route::optionsis now available for routing HTTPOPTIONSverb.- New
secretmethod may be called from Artisan commands for password style input. - Added
Cache::addmethod to store a value in the cache if the key does not exist in the cache already. - Added
Cache::incrementandCache::decrementmethods to all but file and database cache drivers. - Updated
asset:publishcommand to automatically find packages with asset directories. - Implement Eloquent scopes.
- Added
assertResponseOk,assertViewHas,assertSessionHas,assertRedirectedTo,assertRedirectedToRoute,assertRedirectedToActiontest assertions. - Added new
setAttributeNamestoValidatorto allow dynamically passing custom attribute names per instance. - Properties passed to Eloquent
fillor__constructbeginning with an underscore will be ignored. - Changed cache stores to be implementors of a
StoreInterfacerather than extenders of aStoreabstract class. Injected implementations into aCache\Repositoryclass. - Added
array_fetchandarray_flatten. AddedfetchandflattentoCollectionclass. - Added
mergemethod to the Collection class. - Added an
addSelectmethod to the query builder. - Added
Route::currentRouteNameandRoute::currentRouteAction. - Protect against mass assignment by default.
- Make
addandmergemethods on theMessageBagchainable. - Added
deletinganddeletedmethods to Eloquent models. Both new events. - Added
popandshiftmethods to Eloquent collection. - Allow
Input::getto be used on JSON requests to give unified API across request types. - Allow
syncto also update the other pivot table attributes. - Pass console
Commandinstance to database seeders. - Made
storagepath configurable. - Added
@langand@choiceBlade directives. - Do not run route level after filters if response is returned from before filter.
- Added support for "mail" in addition to "smtp" in
Mail. - Added
link_to,link_to_asset,link_to_route,link_to_actionhelpers. - Routes with too many leading or trailing slashes will now 404.
- Added
callSecuretest helper. - Added
valuesmethod to theCollectionclass. - Fix transaction handling for Microsoft SQL Server.
- Added new
dump-autoloadArtisan command that runs optimized for app and all workbenches. - Refactored post
migrate:makehooks to dump autoloads for workbenches. - Added
DB::listen(Closure)method which may be used to listen for database queries. - Added
Model::findOrFail(id)andfirstOrFailmethods to Eloquent. ThrowsModelNotFoundException. Can listen in your apps and return 404 repsonses if you want. - Added support for
toucheson Eloquent models. For example, addingprotected $touches = ['post']to a Comment model will update the owning post'supdated_atcolumn when the Comment is updated. - Session driver now automatically set to
arraywhen running Artisan tasks. - Added static
unguardmethod to Eloquent to disable all mass assignment protection. - Added
--seedoption tomigratecommand.
- Fixed a few things in the ArrayStore session driver.
- Improve reasons in Password Broker.
- Migrated to ircmaxell's password-compat library for PHP 5.5 forward compatibility on hashes. No backward compatibility breaks.
- Inflector migrated to L4. Eloquent models now assume their table names if one is not specified. New helpers
str_pluralandstr_singular. - Improved
Route::controllerso thatURL::actionmay be used with RESTful controllers. - Added model binding to routing engine via
Route::modelandRoute::bind. - Added
missingMethodto base Controller, can be used to handle catch-all routes into the controller. - Fixed bug with Redis data retrieval that caused server to hang.
- Implemented
ArrayableInterfaceandJsonableInterfaceonMessageBag. - Fixed bug where
hasFilereturnedtruewhenfilereturnednull. - Changed default PDO case constant to
CASE_NATURAL. DB::table('foo')->truncate()now available on all supported databases.- Fixed Twitter Bootstrap compatibility in Paginator.
- Allow multiple views to be passed to
View::composer. - Added
Request::segmentmethod. - No need to prefix Translator methods with colons anymore.
- Allow inline error messages for an entire rule on the Validator.
- Can now automatically auto-load a relation for every query by setting the
withattribute on models. - Fix fallback locale handling in Translator.
- Added constructor arguments and
mergemethod toMessageBag. - IoC container will now resolve default parameters if no binding is available.
- Fix auto environment detection on Artisan.
- Fix BrowserKit request processing.
- Added
Config::hasGroupmethod. - Added
DB::unpreparedmethod for running raw, unprepared queries against PDO. - Allow
:keyplace-holder in MessageBag messages. - Added
Auth::validatemethod for validating credentials without logging in. - Added
Auth::statelessmethod for logging in for a single request without sessions or cookies. - Added
DB::extendmethod for adding custom connection resolvers. - Added
eachandfiltermethods to Eloquent collections. - Swapped method order on
Route::controllerto make it more consistent with other similar methods. - Added route names to resource routes.
- Added support for nested resources.
- Changed resource route parameter names to match resource name, allowing for use with
Route::model. - Added
extendImplicitmethod toValidator. - Added
Password::remindandPassword::resetmethods. - Implemented
RemindableInterfaceon the defaultUsermodel. - Added unified queue API component, with drivers for
syncandbeanstalkd(Amazon SQS to come). - Ported
Model->touchmethod from L3 Eloquent. - Added
isEmptymethod to thePaginator. - Added ability to specify
prefixon a route group. - Added
setBaseUrlmethod to pagination environment. - Eloquent Model and Collections objects now include JSON_NUMERIC_CHECK by default on
toJsonmethod. - Eloquent mutators are now prefixed with
getFooAttributeandsetFooAttributeinstead ofgetFooandsetFoo. This is to avoid conflicts with other get and set methods on the model, and in your own code. - Added
auth:remindersArtisan command for generating a migration for the password reminders table. - Added
App::fatalmethod for registering an error listener for PHP fatal errors. - Added
session:tableArtisan command for generating a migration for the session database table. - Fix bug when using
firstmethod on abelongsToManyrelationship. - Added SQL and bindings array to database query exceptions.
- Allow manipulation of session using "dot" notation.
- Route regular expression constraints may now be defined globally via
Route::pattern. - Auto-increment fields are now unsigned if the database system supports it.
- Changed how database seeding works to give more freedom and allow use of Eloquent, etc.
- Change event dispatcher to use more L3 style conventions instead of passing event objects. Added
untilmethod. - Fix bug with Eloquent eager loads with joins.
- Allow method specification on class based View composers.
- Allow method specification on class based Route filters.
- Added new configuration option for specifying session cookie name.
- Escape Blade echos by default. Made
{{{ foo }}}echo for raw output with no escaping. - Allow the sending of e-mails with only plain text parts.