小编bla*_*lah的帖子

嵌入表单集合错误:无法确定属性的访问类型

根据本教程,我正在尝试嵌入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)

symfony-forms symfony doctrine-orm

19
推荐指数
1
解决办法
3460
查看次数

Symfony2密码重置而不覆盖FOSUser

我正在尝试构建一个重置用户密码的表单.我正在使用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)

php symfony

9
推荐指数
1
解决办法
1181
查看次数

Doctrine QueryBuilder按字段优先级排序结果

我有Service与实体title,tagsdescription领域.使用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)

php mysql symfony doctrine-orm

6
推荐指数
1
解决办法
808
查看次数

Doctrine修改的DateTime不会保留

我尝试用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)

为什么结束日期更改无法持久保存到数据库?

php datetime symfony doctrine-orm

6
推荐指数
2
解决办法
1109
查看次数

assetic.ERROR"DoctrineBundle:Collector:db.html.twig"包含错误:未知"profiler_dump"函数

我正在尝试使用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)

symfony assetic symfony-3.1

5
推荐指数
1
解决办法
2733
查看次数

Symfony JWT 令牌:令牌过期时出现异常

我正在使用 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)

symfony lexikjwtauthbundle symfony-3.1

5
推荐指数
1
解决办法
9625
查看次数

如何自定义无效输入的错误消息?

如何自定义无效输入的错误消息?

 {
   "$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

json jsonschema json-schema-validator

3
推荐指数
1
解决办法
2088
查看次数

无法从表单类型的查询构建器函数访问全局变量

我正在尝试在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函数中的任何位置访问的全局变量?

php query-builder symfony-forms symfony doctrine-orm

3
推荐指数
1
解决办法
657
查看次数

学说:架构:更新不是更新表

为什么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 …

php doctrine symfony doctrine-orm

2
推荐指数
1
解决办法
3608
查看次数

JavaScript:显示保留的密码

我有 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)

问题

当我单击“显示”按钮时,会显示两个输入字段。如何确保只显示相应的密码?

html javascript jquery input

0
推荐指数
1
解决办法
2508
查看次数

Doctrine ManyToMany独特的第三实体

我有2张桌子歌曲和专辑.我创建了第三个实体SongAlbum,其中包含了类似于此处所述的额外字段.

问题:如何通过歌曲和专辑确保第三个实体是唯一的.示例:不能有另一个SongAlbum对象具有完全相同的一对歌曲和专辑ID.

many-to-many symfony doctrine-orm

0
推荐指数
1
解决办法
115
查看次数