簡體   English   中英

在Laravel 4中通過遷移腳本創建MySQL視圖

[英]Create MySQL view by migration script in Laravel 4

我正在嘗試通過遷移腳本在Laravel中創建MySQL視圖。 我們如何通過Laravel 4中的遷移腳本創建MySQL視圖?

這個怎么樣? 沒有測試過,但我認為它應該可行。

class CreateMyView extends Migration {

    public function up()
    {
        DB::statement( 'CREATE VIEW myview AS SELECT [your select statement here]' );
    }

    public function down()
    {
        DB::statement( 'DROP VIEW myview' );
    }

}

然后你可以創建一個模型來訪問它:

class MyView extends Eloquent {

    protected $table = 'myview';

}

然后,從應用程序中的其他位置訪問視圖,您可以像查詢任何其他模型一樣查詢它,例如

MyView::all();  // returns all rows from your view
MyView::where( 'price', '>', '100.00' )->get();  // gets rows from your view matching criteria

道具轉到下面提供了有關如何執行此操作的信息:

http://laravel.io/forum/05-29-2014-model-with-calculated-sql-field-doesnt-paginate http://forumsarchive.laravel.io/viewtopic.php?pid=51692#p51692

警告

如果以后的遷移會修改視圖下的表,請務必小心。 原因是根據文件

視圖定義在創建時“凍結”,因此之后對基礎表的更改不會影響視圖定義。 例如,如果視圖在表上定義為SELECT *,則稍后添加到表中的新列不會成為視圖的一部分。

真的,我想你必須小心這樣的東西才能進行任何遷移,所以也許這不是什么大問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM