2016-07-19 248 views
1

我已將dhtmlxGantt集成到Laravel5項目中,並且所有內容都按預期工作。但我想修改它以存儲多個項目的圖表。爲此,我想添加一個名爲「project_id」的額外字段並通過過濾器加載數據。修改dhtmlxGantt以與多個項目一起工作 - Laravel5

我試圖用下面的代碼修改所述控制器:

$connector->render_links(         
    GanttLink::where('user_id', '=', 1)->get(), 
    "id", 
    "source,target,type"     
); 

$connector->render_table(         
    GanttTask::where('user_id', '=', 1)->get(), 
    "id",                
    "start_date,duration,text,progress,parent"      
); 

這種溶液允許我在我想要的方式數據庫加載圖表。但它不會將更改保存回數據庫。我瀏覽了dhtmlxGantt文檔,但沒有得到任何解決方案。

我在我的研究中發現了這些鏈接,可能會對您有所幫助。

Link 1: Changing values before saving

Link 2: Filtering results based on a parameter

請幫我修改我的項目的方式,讓工作(加載和編輯)對不同的圖表。

回答

0

最後我找到了一個解決方案。首先,你需要project_id列添加到數據庫表,然後將列添加到連接器配置:

$connector->render_table(new GanttTask(), "id", "start_date,duration,text,progress,parent,project_id"); 

然後,你必須做一些修改客戶端代碼。使用這樣的,

var project_id = "<?php echo $project['id']; ?>"; 

,以便採取可變進<script>..</script> 然後通過添加這兩種客戶端的處理程序修改代碼:

gantt.attachEvent("onBeforeTaskDisplay", function (id, task) { 
          if (task.project_id == project_id) { 
           return true; 
          } 
          return false; 
         }); 

gantt.attachEvent("onBeforeTaskAdd", function (id, task) { 
          task.project_id = project_id; 
         }); 

第一處理程序在顯示圖表之前按照您希望的方式過濾結果,第二個處理程序在添加之前附加project_id屬性 任務。現在你有一個dhtmlxGatt可以顯示多個項目。

+0

我該如何開發文件 – Fernando

相關問題