我的数据库架构是这样的:
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
));
但是它每次尝试创建用户,而不是检查是否传递了有效的用户名。有什么想法吗?
答案 0 :(得分:0)
让我们假设您的名为 User 的User实体,在名为 App 的捆绑软件中,实体 User < / strong>在您的控制器中:
$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
}