как получить данные из БД с помощью Axios - PullRequest
0 голосов
/ 02 марта 2020

У меня проблема.

У меня есть список проектов, которые я хочу, когда я нажимаю в одном проекте, он переносит меня на другую страницу (компоненты), это компонент ProjectDetail, когда я могу найти подробную информацию о этот проект Внутри него у меня есть этот блок кода: это маршрут, который ведет меня к другим компонентам:

 {path: '/detail/:id', name: detail , component: detail },

Я хочу получить проект с идентификатором в детализации URL из БД, но Ничего не случилось, это ProjectDetail. vue:

export default {
      data(){
      return{
      id: this.$route.params.id,
    projets:[],
   projet:{
    id:'',
   name:'',
     durre:'',
  description:'',
      budget:'',
  owner:'',
      }
   }
 },
      methods:{ 
    afficherProjets(){
       axios.get('api/getProjects/'+this.id)
         .then(data => {
           this.projets = data.data;
               });
                  }
           },
          mounted() {
           console.log('Component mounted.')
           this.afficherProjets();
        }
           }

и это мой контроллер:

 public function getProjects($id)
{
   return Projet::findOrFail($id);
}

1 Ответ

0 голосов
/ 02 марта 2020

в вашем vue.

export default {
  data(){
   return{
    id: this.$route.params.id,
    projet:{}
  }
},
methods:{
 //GETID
 afficherProjet(){
   axios.get('api/getProject/'+this.id)
      .then(data => {
              this.projet = data.data;
           });
 }
},
mounted() {
  console.log('Component mounted.')
  this.afficherProjet();
}

Файл в маршрутах API. php

//ALL
Route::get('getProjects', ['uses' =>'API\ProjetController@getProjects']);
//SPECIFIQ ID
Route::get('getProject/{id}', ['uses' =>'API\ProjetController@getProject']);

В вашем контроллере app / Http / API / ProjetController

public function getProjects()
{
   return Projet::latest()->paginate(15);
}

public function getProject($id)
{
  return Projet::findOrFail($id);
}

Ваша модель projet

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Projet extends Model
{
   public $timestamps = false;

   protected $table = 'projets';

   protected $fillable = [
     'name',
     'durre',
     'description',
     'budget',
     'owner'
   ];
}

У вас есть модель?

Ваша ошибка связана с «data.data», я думаю, она пустая, вам просто нужно вызвать «data» '.

Лично я предпочитаю Конный.

Я думаю, теперь это работает!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...