- 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
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.