mor*_*tic 25
这个怎么样?没有测试过,但我认为它应该可行.
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' );
}
}
Run Code Online (Sandbox Code Playgroud)
然后你可以创建一个模型来访问它:
class MyView extends Eloquent {
protected $table = 'myview';
}
Run Code Online (Sandbox Code Playgroud)
然后,从应用程序中的其他位置访问视图,您可以像查询任何其他模型一样查询它,例如
MyView::all(); // returns all rows from your view
MyView::where( 'price', '>', '100.00' )->get(); // gets rows from your view matching criteria
Run Code Online (Sandbox Code Playgroud)
道具转到下面提供了有关如何执行此操作的信息:
http://laravel.io/forum/05-29-2014-model-with-calculated-sql-field-doesnt-paginate http://forumsarchive.laravel.io/viewtopic.php?pid=51692#p51692
警告
如果以后的迁移会修改视图下的表,请务必小心.原因是根据文件:
视图定义在创建时"冻结",因此之后对基础表的更改不会影响视图定义.例如,如果视图在表上定义为SELECT*,则稍后添加到表中的新列不会成为视图的一部分.
真的,我想你必须要小心那些移植的东西,所以也许这不是什么大问题.