2011-05-18 61 views
1

使用symfony 1.4和doctrine,您可以在您的項目目錄中使用此命令生成前端頁面/模塊:php symfony doctrine:generate-module --with-show --non-verbose-模板前端的tablename tableclassnameSymfony 1.4 Doctrine MySQL數據庫表視圖模塊

這與實際表的偉大工程,但是當我嘗試在一個MySQL數據庫視圖,而不是一個MySQL數據庫表上運行此命令時,我得到這個錯誤:無法生成一個模塊沒有主鍵的模型。視圖繼承了它讀取的表中的主鍵,這是我的理解。

有沒有人知道這方面的工作,這仍然很容易與symfony維護?如果我可以在symfony框架中使用數據庫視圖,那將會很棒。讓我知道你是否需要更多細節。一般來說,無論多麼複雜或簡單,看來都不行。

P.S.我嘗試編輯./config/doctrine/schema.yml文件將視圖中的id列更改爲實際表中的主鍵&嘗試在symfony中生成前端模塊時,仍然收到相同的錯誤。

tableName: v_tablename 
columns: 
    id: 
    type: integer(4) 
    fixed: false 
    unsigned: false 
    primary: true --> This used to be primary: false 
    default: '0' 
    notnull: true 
    autoincrement: false 

* K我想通了,但我不能發佈我的答案,直到8小時後,因爲我是一個新用戶。 當我編輯schema.yml文件時,我是1/2路。如果你試圖從一個視圖中生成一個模塊,並且你已經在symfony之外構建了你的數據庫模型,比如使用MySQL Workbench和教義,你必須建立你的模式,然後從你現有的數據庫結構中的symfony中構建你的模型,如下所示: (這會生成schema.yml文件等)但是,如果您在數據庫模式中有視圖,則不會在schema.yml文件中生成主鍵。手動進行編輯並將主要設置:false更改爲主要設置:根據需要將其更改爲true。

2 - PHP symfony的原則:建立模型一旦你加入你的主鍵後做第2步,你就可以成功生成你的模塊

3 - PHP symfony的學說:生成模塊前端模塊模型

回答

1

小幅調整...這將工作,但是我錯過了在影響窗體頁面上2間& 3的一步,打破了第1步

1 - PHP symfony的學說:內置架構(這將生成的schema.yml文件等)

2 - 編輯./config/doctrine/schema.yml文件。對於你的視圖定義,將primary:false更改爲primary:true在你需要它們的地方。我還注意到,在MySQL中,因爲boolean = tinyint(1),schema.yml檢測整數(1)而不是布爾值。您也可以將您的整數(1)數據類型更改爲您需要的布爾值。

tableName: v_tablename 
    columns: 
    id: 
    type: integer(4) 
    fixed: false 
    unsigned: false 
    primary: false --> change to, primary: true 
    default: '0' 
    notnull: true 
    autoincrement: false 

tableName: tablename 
    columns: 

    active: 
    type: integer(1) --> change to, type: boolean 
    fixed: false 
    unsigned: false 
    primary: false 
    default: '0' 
    notnull: true 
    autoincrement: false 

3 - PHP symfony的教義:建立模型

4 - PHP symfony的教義:建立表單

5 - PHP symfony的教義:生成模塊前端模塊

+0

您是否曾經遇到需要生成基本上基於兩個表的模塊?這種方式對我來說很有意義,因爲我基本上是將我的一個表的數據拆分爲兩個數據庫表,並且由於每個模塊似乎都基於一個表,因此我可以根據兩個表,而不是,:頁 – 2012-02-13 06:31:42

相關問題