根据本教程,我正在尝试嵌入Tag表单集合.和实体有多对多的关系.ServiceTagService
表单正确呈现.但是当我提交表格时,我得到了
无法确定属性"tagList"的访问类型
错误.我不明白为什么通过调用方法Tag没有将新对象添加到Service类中addTag().
服务类型
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('title', TextType::class, array(
'label' => 'Title'
))
;
$builder->add('tagList', CollectionType::class, array(
'entry_type' => TagType::class,
'allow_add' => true,
'allow_delete' => true,
'by_reference' => false
)));
}
Run Code Online (Sandbox Code Playgroud)
服务类
{
....
/**
* @ORM\ManyToMany(targetEntity="Tag", mappedBy="serviceList",cascade={"persist"})
*/
private $tagList;
/**
* @return ArrayCollection
*/
public function getTagList()
{
return $this->tagList;
}
/**
* @param Tag $tag
* @return …Run Code Online (Sandbox Code Playgroud) 我正在尝试构建一个重置用户密码的表单.我正在使用FOSUserBundle来管理用户,但由于某些架构原因,我不想覆盖FOSUser重置控制器
所以我决定构建自己的类型和控制器来重置密码
PasswordResettingType.php
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('plainPassword', RepeatedType::class, array(
'type' => PasswordType::class,
'attr' => ['class' => 'form-group has-feedback'],
'first_options' => array('label' => false,
'attr' => ['placeholder' => 'New Password']
),
'second_options' => array('label' => false,
'attr' => ['placeholder' => 'Repeat Password']),
'invalid_message' => 'Passwords don't match',
));
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'CoreBundle\Entity\User',
'csrf_token_id' => 'resetting'
));
}
Run Code Online (Sandbox Code Playgroud)
重置控制器
/**
* @Route("/reset/{token}", name="api_resetting_reset")
*/
public function resetAction(Request $request, $token)
{
$userManager = …Run Code Online (Sandbox Code Playgroud) 我有Service与实体title,tags与description领域.使用QueryBuilder搜索服务时,如何按字段优先级排序结果.例如,当我搜索术语时,php我希望php在列表顶部的标题中获得服务,然后php在其描述中使用其标签和服务中的服务作为最后一个.
这是我的Querybuilder的一部分:
$qb = $this->createQueryBuilder('service');
$qb->leftJoin('service.tags', 'tag');
$conditions = array($conditions[] = $qb->expr()->eq('service.enabled', true));
$conditions[] = $qb->expr()->eq('service.category', $categoryId);
$term = '%' . $term . '%';
$conditions[] = $qb->expr()->orX(
$qb->expr()->like('service.title', "'$term'"),
$qb->expr()->like('service.description', "'$term'"),
$qb->expr()->like('tag.name', "'$term'")
);
$conditions = call_user_func_array(array($qb->expr(), 'andX'), $conditions);
$qb->where($conditions);
Run Code Online (Sandbox Code Playgroud) 我尝试用modify函数修改对象的DateTime字段
$em = $this->getDoctrine()->getManager();
$end = $session->getEndDate();
$session->setEndDate($end->modify('+10 seconds'));
$em->persist($session);
$em->flush();
Run Code Online (Sandbox Code Playgroud)
这是Session类中$ endDate字段的setter:
/**
* @param \DateTime $endDate
*/
public function setEndDate(\DateTime $endDate)
{
$this->endDate = $endDate;
}
Run Code Online (Sandbox Code Playgroud)
为什么结束日期更改无法持久保存到数据库?
我正在尝试使用Symfony发送电子邮件.一切都在当地完美.但在服务器上我得到了错误prod.log:
assetic.ERROR: The template "SecurityBundle:Collector:security.html.twig" contains an error: Unknown "profiler_dump" function in "SecurityBundle:Collector:security.html.twig" at line 180.
assetic.ERROR: The template "DoctrineBundle:Collector:db.html.twig" contains an error: Unknown "profiler_dump" function in "DoctrineBundle:Collector:db.html.twig" at line 241
这些是我在composer.json中的包
"php": ">=5.5.9",
"symfony/symfony": "3.1.*",
"doctrine/orm": "^2.5",
"doctrine/doctrine-bundle": "^1.6",
"doctrine/doctrine-cache-bundle": "^1.2",
"symfony/swiftmailer-bundle": "^2.3",
"symfony/monolog-bundle": "3.0.1",
"symfony/polyfill-apcu": "^1.0",
"sensio/distribution-bundle": "^5.0",
"sensio/framework-extra-bundle": "^3.0.2",
"incenteev/composer-parameter-handler": "^2.0",
"friendsofsymfony/user-bundle": "~2.0@dev",
"justinrainbow/json-schema": "~2.0",
"jms/serializer-bundle": "1.1.0",
"lexik/jwt-authentication-bundle": "1.6.0",
"symfony/assetic-bundle": "^2.8",
"stof/doctrine-extensions-bundle": "^1.2",
"guzzlehttp/guzzle": "~6.0",
"knplabs/knp-paginator-bundle": "^2.5",
"mapado/mysql-doctrine-functions": "1.*",
"hampe/zurb-ink-bundle": "^2.2",
Run Code Online (Sandbox Code Playgroud)
这是AppKernel类中的包
$bundles = [ …Run Code Online (Sandbox Code Playgroud) 我正在使用 JWT 令牌包进行用户身份验证。当令牌过期时,我收到 500 服务器错误。除了这个之外,我如何返回带有错误代码和消息的 JsonResponse ?
这是我的验证器类:
class JwtTokenAuthentication extends AbstractGuardAuthenticator
{
/**
* @var JWTEncoderInterface
*/
private $jwtEncoder;
/**
* @var EntityManager
*/
private $em;
public function __construct(JWTEncoderInterface $jwtEncoder, EntityManager $em)
{
$this->jwtEncoder = $jwtEncoder;
$this->em = $em;
}
public function getCredentials(Request $request)
{
$extractor = new AuthorizationHeaderTokenExtractor(
'Bearer',
'Authorization'
);
$token = $extractor->extract($request);
if (!$token) {
return null;
}
return $token;
}
public function getUser($credentials, UserProviderInterface $userProvider)
{
$data = $this->jwtEncoder->decode($credentials);
if(!$data){
return null;
}
$user = …Run Code Online (Sandbox Code Playgroud) 如何自定义无效输入的错误消息?
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"username": {
"type": "string",
"pattern": "^[A-Za-z0-9-_.]+$",
"minLength": 3
},
"password": {
"type": "string",
"minLength": 8,
"pattern": "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d\\W]$"
}
},
"required": [
"username",
"password"
],
"errors": [
{
"property": "username",
"message": "min 3 characters, do not use spaces or special characters"
}
]
}
Run Code Online (Sandbox Code Playgroud)
例如,如果用户名输入不是必需的最小长度或不满足正则表达式模式,则显示一条自定义消息min 3 characters, do not use spaces or special characters
我正在尝试在Form类型中将参数设置为查询构建器.我想将impact变量设置为表单字段查询构建器.我impact从表格选项中获得
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('title');
$parentPage = $options["parentPage"];
$impact = $options["impact"];
if($parentPage != null){
$builder->add('parent', 'entity', array(
'class' => "CoreBundle:Page",
'choices' => array($parentPage)
));
}else{
$builder->add('parent', 'entity', array(
'class' => "CoreBundle:Page",
'query_builder' => function(PageRepository $pr){
$qb = $pr->createQueryBuilder('p');
$qb->where("p.fullPath NOT LIKE '/deleted%'");
$qb->andWhere('p.impact = :impact')
->setParameter('impact', $impact); <-'Undefined variable $impact'
return $qb;
},
));
}
Run Code Online (Sandbox Code Playgroud)
为什么这段代码显示错误,它说$impact是未定义的变量.是不是可以从buildForm函数中的任何位置访问的全局变量?
为什么bin/console doctrine:schema:update --force不更新数据库表?
这是一个实体:
/**
* @ORM\Table(name="country")
* @ORM\Entity(repositoryClass="CoreBundle\Repository\CountryRepository")
*/
class Country
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="name", type="string", unique=true)
*/
private $name;
/**
* @var boolean
*
* @ORM\Column(name="active", type="boolean")
*/
private $active;
....
}
Run Code Online (Sandbox Code Playgroud)
表country已创建,但只有id列。我不断收到信息,但未Nothing to update - your database is already in sync with the current entity metadata.添加列nameactive
我也添加了 Doctrine …
我有 2 个密码输入。每个输入字段都有“显示”按钮,在按住该按钮时显示密码。
<form name="resetting_form" method="post" action="">
<div class="form-group has-feedback">
<input type="password" id="password_first" required="required" placeholder="New Password" class="form-control">
<span class="show">show</span>
</div>
<div class="form-group has-feedback">
<input type="password" id="password_second" required="required" placeholder="Repeat Password" class="form-control">
<span class="show">show</span>
</div>
<input type="submit" class="btn btn-primary" value="Submit">
</form>
Run Code Online (Sandbox Code Playgroud)
这是我所拥有的
$(".form-control").on("keyup",function(){
if ($(this).val())
$(".show").show();
else
$(".show").hide();
});
$(".show").mousedown(function(){
$(".form-control").attr('type','text');
}).mouseup(function(){
$(".form-control").attr('type','password');
}).mouseout(function(){
$(".form-control").attr('type','password');
});
Run Code Online (Sandbox Code Playgroud)
问题
当我单击“显示”按钮时,会显示两个输入字段。如何确保只显示相应的密码?
我有2张桌子歌曲和专辑.我创建了第三个实体SongAlbum,其中包含了类似于此处所述的额外字段.
问题:如何通过歌曲和专辑确保第三个实体是唯一的.示例:不能有另一个SongAlbum对象具有完全相同的一对歌曲和专辑ID.
symfony ×9
doctrine-orm ×6
php ×5
symfony-3.1 ×2
assetic ×1
datetime ×1
doctrine ×1
html ×1
input ×1
javascript ×1
jquery ×1
json ×1
jsonschema ×1
many-to-many ×1
mysql ×1