| Package Data | |
|---|---|
| Maintainer Username: | staudenmeir |
| Maintainer Contact: | mail@jonas-staudenmeir.de (Jonas Staudenmeir) |
| Package Create Date: | 2019-06-15 |
| Package Last Update: | 2025-06-29 |
| Home Page: | |
| Language: | PHP |
| License: | MIT |
| Last Refreshed: | 2025-10-27 03:16:43 |
| Package Statistics | |
|---|---|
| Total Downloads: | 1,334,713 |
| Monthly Downloads: | 49,041 |
| Daily Downloads: | 649 |
| Total Stars: | 209 |
| Total Watchers: | 3 |
| Total Forks: | 18 |
| Total Open Issues: | 0 |
This Laravel extension adds support for SQL views in database migrations.
Supports Laravel 5.5.25+.
composer require staudenmeir/laravel-migration-views:"^1.0"
Use createView() to create a view and provide a query builder instance or an SQL string:
use Staudenmeir\LaravelMigrationViews\Facades\Schema;
$query = DB::table('users')->where('active', true);
Schema::createView('active_users', $query);
You can provide the view's columns as the third argument:
use Staudenmeir\LaravelMigrationViews\Facades\Schema;
$query = 'select id from users where active = 1';
Schema::createView('active_users', $query, ['key']);
Use createOrReplaceView() to create a view or replace the existing one:
use Staudenmeir\LaravelMigrationViews\Facades\Schema;
$query = DB::table('users')->where('active', true);
Schema::createOrReplaceView('active_users', $query);
Use renameView() to rename a view:
use Staudenmeir\LaravelMigrationViews\Facades\Schema;
Schema::renameView('active_users', 'users_active');
Use dropView() or dropViewIfExists() to drop a view:
use Staudenmeir\LaravelMigrationViews\Facades\Schema;
Schema::dropView('active_users');
Schema::dropViewIfExists('active_users');
If you are using php artisan migrate:fresh, you can drop all views with --drop-views (Laravel 5.6.26+).
Use hasView() to check whether a view exists:
use Staudenmeir\LaravelMigrationViews\Facades\Schema;
if (Schema::hasView('active_users')) {
//
}
Use getViewColumnListing() to get the column listing for a view:
use Staudenmeir\LaravelMigrationViews\Facades\Schema;
$columns = Schema::getViewColumnListing('active_users');
Please see CONTRIBUTING and CODE OF CONDUCT for details.