Я хочу передать данные из компонента vue js в контроллер laravel? - PullRequest
0 голосов
/ 21 марта 2020

Привет, я построил диаграмму Ганта с библиотеками dhtmlx, и я хочу передать идентификатор проекта моему контроллеру, чтобы вставить его в базу данных. Я восстанавливаю идентификатор проекта из URL и помещаю его в переменный ключ NAM. Так что я хочу передать ключ к моему TaskController. Любая помощь, ребята? это TaskController. php:

<?php

namespace App\Http\Controllers\API;
use App\Http\Controllers\Controller;

use Illuminate\Http\Request;
use App\Task; 

class TaskController extends Controller
{
//
public function store(Request $request){
    $data =$request->all();
    $task = new Task();
    //$task->projet_id=$data['id'];
    $task->text = $request->text;
    $task->start_date = $request->start_date;
    $task->duration = $request->duration;
    $task->progress = $request->has("progress") ? $request->progress : 0;
    $task->parent = $request->parent;
    $task->sortorder = Task::max("sortorder") + 1;;

    $task->save();

    return response()->json([
        "action"=> "inserted",
        "tid" => $task->id
    ]);
}

public function update($id, Request $request){
    $task = Task::find($id);

    $task->text = $request->text;
    $task->start_date = $request->start_date;
    $task->duration = $request->duration;
    $task->progress = $request->has("progress") ? $request->progress : 0;
    $task->parent = $request->parent;

    if($request->has("target")){
        $this->updateOrder($id, $request->target);
    }

    $task->save();

    return response()->json([
        "action"=> "updated"
    ]);
   }

  private function updateOrder($taskId, $target){
    $nextTask = false;
    $targetId = $target;

    if(strpos($target, "next:") === 0){
        $targetId = substr($target, strlen("next:"));
        $nextTask = true;
    }

    if($targetId == "null")
        return;

    $targetOrder = Task::find($targetId)->sortorder;
    if($nextTask)
        $targetOrder++;

    Task::where("sortorder", ">=", $targetOrder)->increment("sortorder");

    $updatedTask = Task::find($taskId);
    $updatedTask->sortorder = $targetOrder;
    $updatedTask->save();
}


public function destroy($id){
    $task = Task::find($id);
    $task->delete();

    return response()->json([
        "action"=> "deleted"
    ]);
 }
 } 

и этот Гант. 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>

<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");

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

      },
      mounted() {
        console.log('Component mounted.')
      }
   }
   </script>
...