Как вернуть всех пользователей - PullRequest
0 голосов
/ 26 июня 2019

Я не хочу отображать all users в моем admin page.Я не нашел и не знаю от function symfony до return all users в angular.Не могли бы вы знать код, пожалуйста?Я использую БД с mysql и phpmyadmin

Я знаю, что проблема связана с моей функцией Symfony.Я хотел бы, чтобы функция возвращала все перечисленные пользователем backoffice

Моя функция в UserController.php:

/**
 * @Rest\Get("/allUsers")
 */
public function getAllUsers()
{
    // TODO: récupérer tout les utilisateurs de la base de donnée.
    $user = $this->get('security.token_storage')->getDoctrine()->getUser();;

    return new Response($user);
}

Мой userService.ts:

getAllUsers() {
 return this.api.get('api/user/allUsers');
}

Я используюAngular 7 и Symfony 4

Я возвращаю текущего пользователя с этой функцией в мой UserController.php

public function getUser()
{
    $user = $this->get('security.token_storage')->getToken()->getUser();
    $response = $this->serializer->serialize($user, 'json', SerializationContext::create()->setGroups(array('user.get')));

    return new Response($response);
}

Ответы [ 3 ]

1 голос
/ 26 июня 2019

UserController.php:

/**
 * @Rest\Get("/allUsers")
 */
public function getAllUsers()
{
    $em = $this->getDoctrine()->getManager();

    $userRepo = $em->getRepository(User::class);
    $user = $userRepo->findAll();
    $response = $this->serializer->serialize($user, 'json', SerializationContext::create()->setGroups(array('user.get')));

    return new Response($response);

}

user.service.ts:

getAllUsers(): Observable<Container[]> {
return this.api.get('api/user/allUsers');
}

admin.component.ts:

export class AdministrationUsersComponent implements OnInit {
  users  = [];

  constructor(
    private userService: UserService,
  ) { }

  ngOnInit() {
    this.userService.getAllUsers().subscribe((result) => {
      this.users = result;
    });
  }

}

admin.component.html:

<tr *ngFor="let user of users">
    <td>{{user.username}}</td>
    <td>{{user.firstName}}</td>
    <td>{{user.lastName}}</td>
</tr>
0 голосов
/ 26 июня 2019

Простой API

вызовите этот API, используя Angular HTTPClient

// this.http.get("http://jsonplaceholder.typicode.com/users").
//     subscribe((data) ⇒ console.log(data))

this.http.get("this is your servie URL ").
          subscribe((data) ⇒ console.log(data))
0 голосов
/ 26 июня 2019

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

Если вы используете запрос Http (вы используете Rest API), так:

так должен выглядеть ваш сервис:

import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
import { Container } from '../Container';



  @Injectable({
    providedIn: 'root'
  })
  export class MarinServiceService {

    Marinurl : string = 'http://192.168.0.83/MarinApi/api/Values';
    constructor(private http : HttpClient) { }


    public getAllContainers():Observable<Container[]>{
      return this.http.get<Container[]>(this.Marinurl)
    }
}

Измените имя метода и объект в соответствии с вашими именами.

А вот метод компонента:

users  = [];

ngOnInit() {
  this.marinService.getAllContainers().subscribe((result)=>{
    this.users = result;

Измените его в соответствии с вашими именами.

По сути, вам нужно подписаться на свой метод -> думать о нем, как о зрителе, подписывающемся на канал YouTube.и продолжает искать новые видео.

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