2012-05-30 176 views
0

最近,我一直在探索Symfony的sfDoctrineGenerator作爲我的後端接口。問題是這樣的:sfDoctrineGenerator刪除不起作用

我正在使用sfDoctrineGuardPlugin進行用戶管理。 sfGuardUser模塊使用sfDoctrineGenerator。所有需要的功能(刪除,編輯,添加)正在工作。到現在爲止還挺好。

然後我使用這個link作爲參考創建了一個新模塊。添加和編輯功能現在可以工作,但我無法刪除(批量和單個刪除)工作。我試圖在批處理操作下明確添加它,但它仍然不起作用。它說它已經刪除,顯示一個Flash消息成功,但沒有元素被刪除。有人可以指出問題可能源於何處的正確方向嗎?

這裏是我的generator.yml

generator: 
    class: sfDoctrineGenerator 
    param: 
    model_class:   News 
    theme:     admin 
    non_verbose_templates: true 
    with_show:    false 
    singular:    ~ 
    plural:    ~ 
    route_prefix:   news 
    with_doctrine_route: true 
    actions_base_class: sfActions 

    config: 
     actions: ~ 

     fields: 
     news: {label: Announcement} 
     created_at: {label: Date Published} 
     updated_at: {label: Date Updated} 
     user_id: {label: Author} 
     user_name: {label: Author} 

     list:  
     title:   Announcements List 
     display:  [=title, created_at, updated_at, user_name] 
     sort:   [created_at, desc] 
     max_per_page: 10 
     batch_actions: 
      _delete: ~ 

     filter: 
     display: [title, user_id] 

     form: 
     class: NewsForm 

     edit:  
     title: Editing Announcement "%%title%%" 

     new:  
     title: New Announcement 

的副本如果你需要從我其他的東西,請不要猶豫發表評論。任何幫助都感激不盡。提前致謝。

UPDATE:

這裏是在瀏覽器中查看請求報頭:

Request URL:http://localhost:8080/inventory_dev.php/news 
Request Method:GET 
Status Code:200 OK 
Request Headersview source 
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3 
Accept-Encoding:gzip,deflate,sdch 
Accept-Language:en-US,en;q=0.8 
Cache-Control:max-age=0 
Connection:keep-alive 
Cookie:ja_purity_tpl=ja_purity; fontSize=100; __atuvc=312|19; JSESSIONID=9DDD204812F0C53A8B3D33B89BF7A7C8; matciis=ha6l8ci8h3i2bp696e4h33vig2; symfony=ld2qept3j5cddjsb16qie098u3 
Host:localhost:8080 
Referer:http://localhost:8080/inventory_dev.php/news 
User-Agent:Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.52 Safari/536.5 
Response Headersview source 
Cache-Control:no-store, no-cache, must-revalidate, post-check=0, pre-check=0 
Connection:Keep-Alive 
Content-Type:text/html; charset=utf-8 
Date:Wed, 30 May 2012 08:30:02 GMT 
Expires:Thu, 19 Nov 1981 08:52:00 GMT 
Keep-Alive:timeout=5, max=99 
Pragma:no-cache 
Server:Apache/2.2.21 (Win32) PHP/5.3.8 
Transfer-Encoding:chunked 
X-Powered-By:PHP/5.3.8 
+0

您是否跟蹤可能會刪除該行的sql查詢? – j0k

+0

我很抱歉。你有什麼建議我應該怎麼做?我試圖通過刪除按鈕後通過fronend_dev.php控制器訪問該網站,但所有查詢都是SELECT的。 – nmenego

+0

我要求你檢查[查詢來自MySQL](http://www.electrictoolbox.com/logging-queries-with-mysql/)(如果你使用它),當你按下時查看'DELETE'查詢在後端的刪除鏈接。因此,您將能夠在phpMyAdmin中測試查詢(例如)以查看SQL錯誤消息。 – j0k

回答

0

這是D'OH時刻在生活中的一個。

的問題是,在我的schema.yml,我規定:

actAs: { Timestampable: ~ , SoftDelete: ~ } 

這意味着,當我刪除元素,它只會增加的時間戳它,而不是物理刪除。我從配置中刪除了SoftDelete,問題得到解決。

也許在sfDoctrineGenerator中應該有一個功能來支持SoftDelete?