So erstellen Sie die Migrationen bei Datenbank-views, die mit Hilfe von php artisan in Laravel?

Tatsächlich, ich habe es geschafft, erstellen Sie eine sql-Ansichten für Laravel mit PHP Artisan mit unten Schritt.

Schritt 1. Führen Sie die unten Befehl:

php artisan make:migration create_overall_report_views

Schritt 2.

Öffnen Sie die migration-Datei und fügen Sie den folgenden code:

class CreateOverallReportView extends Migration 
{
  /**
  * Run the migrations.
  *
  * @return void
  */
  public function up()
  {
    //
    DB::statement("
      CREATE VIEW views_overall_report AS
      (
        SELECT er.user_id as user_id, e.id AS entities_id, 
            c.status_id AS status_id, s.name AS status_name

        FROM `user_roles` er
          LEFT JOIN elists e ON e.id=er.entities_id
          LEFT JOIN `clists` c ON c.id=e.checklists_id
          LEFT JOIN `status` s ON s.id = c.overall_status_id

        WHERE s.slug = 'completed'
          AND c.deleted_at IS NULL
      )
    ");
  }

  /**
  * Reverse the migrations.
  *
  * @return void
  */
  public function down()
  {
    DB::statement('DROP VIEW IF EXISTS views_overall_report');
  }  

}

Schritt 3. Zum aufrufen und ausführen der SQL-Ansichten über Laravel-Abfrage

$items = $DB::table('views_overall_report')
            ->select('status_id', 'status_name',
                $DB::raw('count(entities_id) as counts')
            )
            ->groupBy('status_id')
            ->orderBy('counts' , 'desc')
            ->whereIn('user_id', Auth::user()->id())
            ->get();
print_r($items);

Hoffe, das hilft. Bitte lassen Sie mich wissen, wenn jemand hat eine bessere Lösung!!!!

  • laravel.com/docs/master/migrations
  • wie ist die Verknüpfung der Dokumentation helfen.
  • Der Blick auf die Geschichte für die post, zunächst er konnte nicht finden Sie in der Dokumentation, daher habe ich es gepostet in einem Kommentar (im Gegensatz zu der Veröffentlichung als eine tatsächliche Antwort). Sie können die Flagge ist mein Kommentar obsolet.
  • Ich habe dies getan, bevor. Sie können tatsächlich machen normalen Eloquent-Modell direkt mit der Ansicht. php artisan Hersteller:Modell ViewOverallReport. Dann können Sie einfach $v = ViewOverallReport::all() als Beispiel für den Einsatz in controller
InformationsquelleAutor rc.adhikari | 2016-03-29
Schreibe einen Kommentar