передача переменной из контроллера в vue?

Я хочу восстановить с помощью функции моего контроллера среднее значение задач каждого проекта, который я пробую, но это не сработало, он показывает 0. Есть помощь, ребята? (проблема в файле project.vue) это функция прогресса, которая возвращает среднее значение задач каждого проекта:

 public function progress($id){

$tasks=Task::where(['projet_id'=>$id])->get();
$x=0;
$i=0;
 foreach ($tasks as $task) {

    $x = $x + $task->progress;
    $i++ ;
  }
  $progress=$x/$i;
 return $progress;
  }

и здесь я хочу показать прогресс в project.vue:

 <tr v-for="projet in projets.data" :key="projet.id" >
<td @change="avancemant(projet.id)">
{{ parseInt(100 * progress ) }}%
<img :src="`/img/icon/verif.png`" style="width:15px; 
 v-if="`${parseInt(100*progress)}`==100" >
</img>
<div class="progress">
<div class="progress-bar bg-success" role="progressbar" aria-valuenow="0"   
id="progress" v-model="form.progress" 
aria-valuemin="`${parseInt(100*task.progress)}`":style=" 
{'width':`${parseInt(100*progress)}%`}" aria-valuemax="100">
 </div>
 </div>             
 </td>

а это мой скрипт project.vue:

export default {
     data(){
         return{
      progress:'',
      projets:{},
      projet:{
          id:''
      },
      }}
    created(){
           }
    methods:{
     avancemant($id){
       axios.get('/api/progress/'+$id).then(({data})=>(this.progress =data.data));;
     },
    } 

1 ответ

Есть несколько проблем. А<td> Тег не запускает событие изменения.

Даже если вы настроите его для прослушивания обновлений, вы столкнетесь с проблемой бесконечного цикла.

Вам также нужен способ хранения различных значений прогресса.

Вы можете обновить projets объект вроде этого:

avancemant(id){
  axios.get('/api/progress/'+id).then(
     ({data}) => (this.projets.data[id].progress = data.data)
  )
}

И вызовем его с установленного крючка так:

mounted () {
    Object.values(this.projets.data).forEach(function(x){
       this.avancemant(x.id)
    })
}

Конечно, это сработает только один раз. Другой вопрос - заставить его стрелять несколько раз в зависимости от уровня прогресса.

Другие вопросы по тегам