我試圖通過遷移腳本在Laravel的MySQL中創建視圖。我們如何通過Laravel 4中的遷移腳本創建MySQL視圖?在Laravel 4中通過遷移腳本創建MySQL視圖
8
A
回答
24
這個怎麼樣?沒有測試過,但我認爲它應該可以工作。
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
CAVEAT
要小心,如果以後遷移修改表的基本視圖。原因是,per the documentation:
視圖定義在創建時是「凍結的」,因此後來對基礎表的更改不會影響視圖定義。例如,如果視圖在表上定義爲SELECT *,則稍後添加到表中的新列不會成爲視圖的一部分。
真的,我想你必須小心這樣的東西,因爲任何遷移,所以也許這不是什麼大不了的。
相關問題
- 1. 使用DATE_FORMAT爲MySQL視圖創建Alembic遷移腳本
- 2. 在Laravel 4遷移中創建MYSQL程序
- 3. Laravel 4遷移
- 4. MySQL中的遷移腳本
- 5. 如何使用Alembic工具創建'視圖遷移'腳本
- 6. 在Laravel 4中爲現有數據庫創建遷移
- 7. 通過遷移創建Rails 3.2.6&數據庫視圖
- 8. 無法創建遷移Laravel
- 9. Laravel遷移 - 表未創建
- 10. laravel中的遷移創建錯誤
- 11. Laravel 4遷移:安裝ErrorException
- 12. Laravel 4刪除遷移
- 13. Laravel 4遷移錯誤?
- 14. Laravel 4遷移:安裝[PDOException]
- 15. mysql創建過程腳本
- 16. Laravel 4遷移錯誤 - 創建兩個AUTO_INCREMENT主鍵字段
- 17. 通過腳本創建cronjob
- 18. 從SQL創建表腳本的Rails遷移腳本
- 19. 在bash腳本中通過ssh創建mySQL數據庫
- 20. 無法創建laravel遷移外鍵
- 21. Laravel Artisan:遷移不創建新表
- 22. Laravel 5.2從遷移創建數據庫
- 23. Laravel 4:遷移 - 架構::表 - 文本列自動創建初級唯一索引
- 24. Rails 4手動創建遷移
- 25. Laravel遷移創建遷移表,而不是用戶的預期
- 26. MySQL表關係 - 遷移LARAVEL
- 27. 通過視圖創建NotesdocumentCollection
- 28. 通過遷移在ruby-on-rails 3中創建表?
- 29. 在ROR中通過生成器創建遷移
- 30. 如何通過映射3個表在mysql中創建視圖?