gantt.parse 或 gantt.load 的参数无效(laravel 和 vuejs)

Invalid argument for gantt.parse or gantt.load (laravel and vuejs)

我正在尝试在我的项目中使用 Dhtmlx 库构建甘特图,所以我尝试在 gantt.load 函数中传递项目的 ID 以仅显示该项目的甘特图。但是它向我展示了这些错误 "Invalid argument for gantt.parse or gantt.load. An object or a JSON string of format https://docs.dhtmlx.com/gantt/desktop__supported_data_formats.html#json is expected. Actual argument value: "失败“” 任何帮助家伙??? 这是我的 Gantt.vue:

 <template>
<div class="container">
    <div class="row justify-content-center">
        <div class="col-md-8">
            <div class="card">
               <div class="card-body">

                <div id="gantt_here">

                 </div>

                </div>

         </div>
        </div>
    </div>
</div>

 </template>

<script>

export default {

    data(){
        return{
               key: this.$route.params.id,


        }
    },
    created(){

gantt.config.xml_date = "%Y-%m-%d %H:%i:%s";
gantt.config.order_branch = true;/*!*/
gantt.config.order_branch_free = true;/*!*/
gantt.init("gantt_here");

gantt.load("/api/data/"+this.key);

var dp = new gantt.dataProcessor("/api");/*!*/
dp.init(gantt);/*!*/
dp.setTransactionMode("REST");/*!*/

    },
    mounted() {

            console.log('Component mounted.')
    }
}

这是我的 GanttController:

<?php
namespace App\Http\Controllers\API;
use App\Http\Controllers\Controller;
use App\Task;
use App\Link;

  class GanttController extends Controller
   {
public function get($id){
    $tasks= new Task;
 if($tasks->projet_id== $id){
    $tasks = new Task();
    $links = new Link();

    return response()->json([
        "data" => $tasks->orderBy('sortorder')->get(),
        "links" => $links->all()
    ]);
 }
 else{
  return response()->json([
    "failed"
            ]);
 }
 }

}

这是我在api.php的路线:Route::get('/data/{id}', 'API\GanttController@get');

甘特图需要 JSON 格式的数据。但是 gantt.load() 方法不会单独将参数发送到服务器端。你可以尝试使用自定义路由,但是你需要手动实现一个函数将数据发送到服务器端,然后你可以在"create""update""delete"中添加动作: https://docs.dhtmlx.com/gantt/desktop__server_side.html#customrouting

或者你可以尝试在controller中获取ID,例如:

public function get($id){
    // $id: "/api/data/34"
    $id = substr($id, 10); // $id: "34"
    $tasks= new Task;
    if($tasks->projet_id== $id){ // $id: "34"