Вход Регистрация
Файл: app/Http/Controllers/UpdateController.php
Строк: 107
<?php

namespace AppHttpControllers;

use 
AppModelsMigration;
use 
IlluminateSupportFacadesArtisan;

class 
UpdateController extends Controller
{
    
/**
     * Show the Welcome page.
     *
     * @return IlluminateContractsFoundationApplication|IlluminateContractsViewFactory|IlluminateViewView
     */
    
public function index()
    {
        return 
view('update.container', ['view' => 'update.welcome']);
    }

    
/**
     * Show the Overview page.
     *
     * @return IlluminateContractsFoundationApplication|IlluminateContractsViewFactory|IlluminateViewView
     */
    
public function overview()
    {
        
$migrations $this->getMigrations();
        
$executedMigrations $this->getExecutedMigrations();

        return 
view('update.container', ['view' => 'update.overview''updates' => count($migrations) - count($executedMigrations)]);
    }

    
/**
     * Show the Complete page.
     *
     * @return IlluminateContractsFoundationApplication|IlluminateContractsViewFactory|IlluminateViewView
     */
    
public function complete()
    {
        return 
view('update.container', ['view' => 'update.complete']);
    }

    
/**
     * Update the database with the new migrations.
     *
     * @return IlluminateHttpRedirectResponse
     */
    
public function updateDatabase()
    {
        
$migrateDatabase $this->migrateDatabase();
        if (
$migrateDatabase !== true) {
            return 
back()->with('error'__('Failed to migrate the database. ' $migrateDatabase));
        }

        return 
redirect()->route('update.complete');
    }

    
/**
     * Migrate the database.
     *
     * @return bool|string
     */
    
private function migrateDatabase()
    {
        try {
            
Artisan::call('migrate', ['--force' => true]);
            
Artisan::call('view:clear');
            
Artisan::call('cache:clear');
            
Artisan::call('config:clear');

            return 
true;
        } catch (
Exception $e) {
            return 
$e->getMessage();
        }
    }

    
/**
     * Get the available migrations.
     *
     * @return array
     */
    
private function getMigrations()
    {
        
$migrations scandir(database_path().'/migrations');

        
$output = [];
        foreach(
$migrations as $migration) {
            
// Select only the .php files
            
if($migration != '.' && $migration != '..' && substr($migration, -44) == '.php') {
                
$output[] = str_replace('.php'''$migration);
            }
        }

        return 
$output;
    }

    
/**
     * Get the executed migrations.
     *
     * @return IlluminateSupportCollection
     */
    
private function getExecutedMigrations()
    {
        return 
Migration::all()->pluck('migration');
    }
}
Онлайн: 3
Реклама