Я работаю с Symfony и Angular для реализации мини-проекта. Я добавил маршрут в свой файл routing.yml, чтобы редактировать пользователя. В угловом интерфейсе я пытаюсь получить пользователя по его идентификатору, но получаю ошибку 404.
No route found for "GET /user/NaN" (from "http://localhost:4200/edit-user")
вот файл routing.yml:
pr_manager_update:
path: /user/update/{id}
defaults: { _controller: PrManagerBundle:User:update}
Угловой сервис:
getUserById(id: number) {
return this.http.get(Statique.USER_ID + '/' + id);
}
static USER_ID = 'http://localhost/project-manager/backend/web/app_dev.php/user';
И компонент:
import { Component, OnInit } from '@angular/core';
import { eb_user } from 'src/app/classes/eb_user';
import { FormGroup, FormBuilder, Validators } from '@angular/forms';
import { Router } from '@angular/router';
import { CreateService } from 'src/app/services/create.service';
import { first } from 'rxjs/operators';
@Component({
selector: 'app-edit',
templateUrl: './edit.component.html',
styleUrls: ['./edit.component.scss']
})
export class EditComponent implements OnInit {
user: eb_user[];
updateForm: FormGroup;
constructor(private formBuilder: FormBuilder,
private router: Router,
private createService: CreateService) { }
ngOnInit() {
let userId = localStorage.getItem("editUserId");
if(!userId){
alert("erreur")
this.router.navigate(['liste-user']);
return;
}
this.updateForm = this.formBuilder.group({
id: [],
nom: ['', Validators.required],
prenom: ['', Validators.required],
tel: ['', Validators.required],
mail: ['', Validators.required],
domaine: ['', Validators.required],
//client: eb_user[];
//x_eb_role : ['', Validators.required],
});
this.createService.getUserById(+userId)
.subscribe(data => {this.updateForm.setValue(data);});
}
onSubmit(){
this.createService.editUser(this.updateForm.value)
.pipe(first())
.subscribe(
data =>{
this.router.navigate(['liste-user']);
},
error => {
alert(error);
}
);
}
}
Я ожидаю, что соединение между бэкэндом и внешним интерфейсом будет выполнено правильно