繁体   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