小编Ima*_*iev的帖子

如何获取Symfony2应用程序的根目录?

从控制器内部获取根应用程序目录的最佳方法是什么?是否有可能将其置于控制器之外?

现在我通过将它(从参数)传递给服务作为参数得到它,如下所示:

services:

    sr_processor:
        class: Pro\Processor
        arguments: [%kernel.root_dir%]
Run Code Online (Sandbox Code Playgroud)

是否有更好,更简单的方法在Symfony2中获取此信息?

php symfony symfony-2.8 symfony-config-component

120
推荐指数
4
解决办法
15万
查看次数

如何在Symfony2中进行LIKE数据库查询

这应该很简单,但我找不到一个有效的例子.这是一个控制器方法,它抛出错误"无效的参数号:绑定变量的数量与令牌的数量不匹配".我成功发布了"searchterm"变量,但无法使查询生效.缺什么?谢谢!

 public function searchAction()
{
    $request = $this->getRequest();

    $searchterm = $request->get('searchterm');

    $em = $this->getDoctrine()->getEntityManager();

    $query = $em->createQuery("SELECT n FROM AcmeNodeBundle:Node n WHERE n.title LIKE '% :searchterm %'")
             ->setParameter('searchterm', $searchterm);

    $entities = $query->getResult();

    return array('entities' => $entities);

}
Run Code Online (Sandbox Code Playgroud)

doctrine dql query-builder symfony doctrine-orm

12
推荐指数
3
解决办法
3万
查看次数

Symfony 4 SQLSTATE[42000] 指定的键太长

我正在尝试从 Symfony 4 中的实体创建数据库。但是结果是:

SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes
Run Code Online (Sandbox Code Playgroud)

我知道这是因为它试图使用 utf8mb4 字符集和 utf8mb4_unicode_ci 排序规则。我已经尝试将我的 Doctic.yaml 文件替换为 utf8 和 utf8_unicode_ci 以及:

@ORM\Table(name="users", options={"collate"="utf8_unicode_ci", "charset"="utf8", "engine"="MyISAM"})
Run Code Online (Sandbox Code Playgroud)

但它仍在尝试使用 utf88mb4。如何强制它使用 utf8?

mysql orm utf-8 symfony doctrine-orm

10
推荐指数
2
解决办法
6704
查看次数

使用Symfony autowire时是否可以排除多个目录?

在Symfony 4中使用autowire时,我使用了这个工作代码:

App\:
    resource: '../src/*'
    exclude: '../src/{Domain,Entity,Migrations,Tests}'
Run Code Online (Sandbox Code Playgroud)

该代码从自动装配中排除了所有这些文件夹:

- src/Domain
- src/Entity
- src/Migrations
- src/Tests
Run Code Online (Sandbox Code Playgroud)

没关系,但是当我想要排除多个分散在另一个文件夹中的同名文件夹时,就会出现问题.

例如,如果我们有这个结构:

  • SRC/Folder1中/ FolderToExclude
  • SRC/FOLDER2/Folder2-1/FolderToExclude

¿有没有办法排除名为FolderToExclude的所有文件夹?

我已经尝试了以下代码,但有一些小的变化:

App\:
    resource: '../src/*'
    exclude: '../src/{Domain,Entity,Migrations,Tests,**/FolderToExclude}'
Run Code Online (Sandbox Code Playgroud)

但它不起作用:(

php autowired symfony symfony4

8
推荐指数
1
解决办法
2814
查看次数

如何在Symfony路由中使用锚点?

我在routing.yml文件中定义了一个路由:

route_name:
    path: "/dashboard#messages/{id}"
Run Code Online (Sandbox Code Playgroud)

但是,当我要求Symfony生成该路线时,我得到:

/dashboard%23messages/12345
Run Code Online (Sandbox Code Playgroud)

如何跳过路由生成的编码部分?或者我如何#在路径定义中转义char?

PS:使用(大)遗留系统,我无法更改网址.

url symfony symfony-routing

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

在 Symfony2 Doctrine findBy() 中保留数组的初始顺序

我有一个$newsList包含以下值的 ID 数组 ( ):4,2,1,3

我正在尝试从实体的数据库中获取一些数据:

$news=$this->getDoctrine()->getRepository('Bundle:News')->findBy(array('id' => $newsList));
Run Code Online (Sandbox Code Playgroud)

$newsList数组代表新闻实体的真实 ID。

但是当我这样做时:

foreach($news as $n){
    $n->getId();
}
Run Code Online (Sandbox Code Playgroud)

ID 按顺序排列:1,2,3,4

如何在 foreach 中保留从头开始的顺序?

php entity doctrine symfony doctrine-orm

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

运行php artisan db:seed多个,并继续进行重复的键插入

我创建了一个种子服务器,用于在数据库中插入默认值。

如果我多次运行此播种机,则mysql返回重复密钥错误,

所以我的问题是,处理此错误的最佳方法什么?以及如何继续运行其他种子?

php migration orm laravel eloquent

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

Symfony4:找不到“ GET / lucky / number”的路线

我开始玩symfony4。我刚刚创建了新的应用程序并创建了新的LuckyController。它与以这种方式配置的route.yaml一起使用:

lucky:
    path: /lucky/number
    controller: App\Controller\LuckyController::number
Run Code Online (Sandbox Code Playgroud)

使用以下控制器:

<?php

namespace App\Controller;

use Symfony\Component\HttpFoundation\Response;

class LuckyController
{
    public function number()
    {
        return new Response('<html><head></head><body>' . rand(111, 999) . '</body></html>');
    }
}
Run Code Online (Sandbox Code Playgroud)

但是我想使用注释。所以我决定评论routes.yaml。以下文档解释了如何在symfony中创建路由,我已经做到了:

<?php

namespace App\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;

class LuckyController extends Controller
{
    /**
     * @Route("/lucky/number")
     */
    public function number()
    {
        return new Response('<html><head></head><body>' . rand(111, 999) . '</body></html>');
    }
}
Run Code Online (Sandbox Code Playgroud)

找不到路线

php controller symfony symfony-routing symfony4

4
推荐指数
2
解决办法
5037
查看次数

如何使用Doctrine在Symfony2中实现子查询?

我需要计算子查询中返回的项目数.如果我写子查询如何DQL - 一切都很好,但如果我尝试通过QueryBuilder构建一个查询 - 我得到一个错误.

子查询DQL:

$qb3 = $this->createQueryBuilder('c')
            ->select('COUNT(c.id)')
            ->where('c.id IN (SELECT cl.id FROM Acme\AppBundle\Entity\ClassC cl INNER JOIN Acme\AppBundle\Entity\ClassP p WHERE p.var1 = :var1 AND p.var2 = cl.id GROUP BY cl.id)')
            ->setParameter('var1', $var);
Run Code Online (Sandbox Code Playgroud)

通过QueryBuilder的子查询:

$qb = $this->createQueryBuilder('c');
$qb->select('COUNT(c.id)')
   ->where(
       $qb->expr()->in(
           'c.id',
           $this->createQueryBuilder('cl')
                ->select('cl.id')
                ->innerJoin('Acme\AppBundle\Entity\ClassP', 'p')
                ->where('p.var1 = :var1')
                ->setParameter('var1', $var)
                ->andWhere('p.var2 = cl.id')
                ->groupBy('cl.id')
                ->getDQL()
     )
 );
Run Code Online (Sandbox Code Playgroud)

两个版本都返回相同的DQL.

错误: 屏幕

php query-builder doctrine-query symfony doctrine-orm

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

React动态渲染一定数量的组件

我想根据用户获得的点数(this.state.points)显示一些组件Star(material-ui组件).

我不知道该怎么做.

import React, { Component } from "react";
import { Star } from "@material-ui/icons";

Points extends Component {
  constructor(props) {
  super(props);
    this.state = {
      points: 6
    };
  }

  render() {
     return (
       <div>
         <p>
           + {this.state.points} points
           <Star />
         </p>
       </div>
     );
    }
  }

export default Points;
Run Code Online (Sandbox Code Playgroud)

javascript icons state reactjs material-ui

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

在Doctrine实体中获取最大ID

我需要获取symfony 2.7实体内的表的最大ID.但我没有得到这个问题,而是得到了这个问题.

注意:未定义的属性:AppBundle\Entity\BlogPost :: $ container

这是我的BlogPost实体,

<?php

namespace AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\HttpFoundation\File\UploadedFile;

/**
 * BlogPost
 *
 * @ORM\Table()
 * @ORM\Entity
 */
class BlogPost {

    const SERVER_PATH_TO_IMAGE_FOLDER = '/uploads';

    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="title", type="string", length=255)
     */
    private $title;

    /**
     * @var string
     *
     * @ORM\Column(name="body", type="text")
     */
    private $body;

    /**
     * @var string
     *
     * @ORM\Column(name="filename", type="text")
     */
    private …
Run Code Online (Sandbox Code Playgroud)

entity query-builder symfony doctrine-orm

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

Symfony 4:您请求的服务不存在

我将我的网站从Symfony 3.4更新到Symfony 4,并做了一些更改。但是知道我有这个错误:

您请求的服务“ D”不存在。

这是我的堆栈跟踪:

Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException:
You have requested a non-existent service "D".

  at vendor\symfony\dependency-injection\Container.php:263
  at Symfony\Component\DependencyInjection\Container->get('D')
     (vendor\symfony\routing\Loader\DependencyInjection\ServiceRouterLoader.php:38)
  at Symfony\Component\Routing\Loader\DependencyInjection\ServiceRouterLoader->getServiceObject('D')
     (vendor\symfony\routing\Loader\ObjectRouteLoader.php:55)
  at Symfony\Component\Routing\Loader\ObjectRouteLoader->load('D:\\IIS Websites\\Wizard\\src/config/routing.yml', 'service')
     (vendor\symfony\config\Loader\DelegatingLoader.php:40)
  at Symfony\Component\Config\Loader\DelegatingLoader->load('D:\\IIS Websites\\Wizard\\src/config/routing.yml', 'service')
     (vendor\symfony\framework-bundle\Routing\DelegatingLoader.php:70)
  at Symfony\Bundle\FrameworkBundle\Routing\DelegatingLoader->load('D:\\IIS Websites\\Wizard\\src/config/routing.yml', 'service')
     (vendor\symfony\framework-bundle\Routing\Router.php:56)
  at Symfony\Bundle\FrameworkBundle\Routing\Router->getRouteCollection()
     (vendor\symfony\routing\Router.php:367)
  at Symfony\Component\Routing\Router->getMatcherDumperInstance()
     (vendor\symfony\routing\Router.php:289)
  at Symfony\Component\Routing\Router->Symfony\Component\Routing\{closure}(object(ResourceCheckerConfigCache))
  at call_user_func(object(Closure), object(ResourceCheckerConfigCache))
     (vendor\symfony\config\ResourceCheckerConfigCacheFactory.php:43)
  at Symfony\Component\Config\ResourceCheckerConfigCacheFactory->cache('D:\\IIS Websites\\Wizard\\var\\cache\\dev/srcDevDebugProjectContainerUrlMatcher.php', object(Closure))
     (vendor\symfony\routing\Router.php:302)
  at Symfony\Component\Routing\Router->getMatcher()
     (vendor\symfony\routing\Router.php:256)
  at Symfony\Component\Routing\Router->matchRequest(object(Request))
     (vendor\symfony\http-kernel\EventListener\RouterListener.php:109)
  at Symfony\Component\HttpKernel\EventListener\RouterListener->onKernelRequest(object(GetResponseEvent), 'kernel.request', object(EventDispatcher))
     (vendor\symfony\event-dispatcher\EventDispatcher.php:212)
  at Symfony\Component\EventDispatcher\EventDispatcher->doDispatch(array(array(object(DebugHandlersListener), 'configure'), array(object(ValidateRequestListener), 'onKernelRequest'), array(object(SessionListener), 'onKernelRequest'), array(object(FragmentListener), 'onKernelRequest'), array(object(RouterListener), 'onKernelRequest'), array(object(ResolveControllerNameSubscriber), 'onKernelRequest'), array(object(LocaleListener), 'onKernelRequest'), …
Run Code Online (Sandbox Code Playgroud)

php service dependency-injection symfony symfony4

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