Проверка формы с отношением внешнего ключа - PullRequest
1 голос
/ 26 марта 2019

Моя схема базы данных выглядит примерно так:

create table users (
  id INT PRIMARY KEY,
  username TEXT,
)

create table posts (
  id INT PRIMARY KEY,
  user_id INT,
  title TEXT,
  content TEXT,
)

Я занимаюсь разработкой API для создания "сообщений", поэтому я публикую сообщения, как показано ниже, и отношение определено в сущности "Пользователь и сообщения"

{
   "user": {
        "username": "some_name"
   },
   "title": "testing",
   "content": "test content"
}

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

Мой контроллер как этот

$post = new Post();
$form = $this->createForm(PostType::class, $post);
$form->submit($request->request->all());

Мой конструктор Форма как этот

$builder
    ->add('title', TextType::class)
    ->add('content', TextType::class)
    ->add('User', UserType::class, array(
        'data_class' => User::class
    ));

Но он пытается создать пользователя каждый раз вместо проверки действительногоимя пользователя пройдено.Есть идеи?

1 Ответ

0 голосов
/ 26 марта 2019

Предположим, что ваша сущность User с именем User внутри пакета с именем App , имеет свойство nammed username в Entity User in ваш контроллер:

$user = $em->getRepository('AppBundle:User')->findBy(array('username' => $username)); // we suppose that you have already extract the value of username from the request into $username. 

И тогда вы можете просто проверить:

if($user instanceof User){
// do whatever you need here 
}
...