小编Got*_*bel的帖子

如何在Symfony2路由中定义默认日期值?

如果我想创建一个路径,其中年,月和日是变量,如何定义如果这些变量为空,则应采用当前日期?

像这样(不能确定......)

blog:
    path:      /blog/{year}/{month}/{day}
    defaults:  { _controller: AcmeBlogBundle:Blog:index,
                    year:  current_year,
                    month: current_month
                    day:   current_day
               }
Run Code Online (Sandbox Code Playgroud)

我想过定义两条不同的路线,就像这样

blog_current_day:
    path:      /blog
    defaults:  { _controller: AcmeBlogBundle:Blog:index }

blog:
    path:      /blog/{year}/{month}/{day}
    defaults:  { _controller: AcmeBlogBundle:Blog:index }
Run Code Online (Sandbox Code Playgroud)

但如果我再打电话给blog_current_day我的控制器

public function indexAction(Request $request, $year, $month, $day) {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

将抛出异常,因为缺少年,月和日.

有什么建议?

routing symfony

4
推荐指数
1
解决办法
3797
查看次数

如何有效地比较两个DateTime并检查它们是否在同一天?

我有两个DateTime对象

$lastDate = $entity->getDate(); // is a DateTime with same format as $today
$today    = \DateTime::createFromFormat('!Y-m-d', date('Y-m-d'));
Run Code Online (Sandbox Code Playgroud)

现在我想检查一下,如果这两个日期是同一天,或者它们是否相隔超过一天(但这也应该包括$lastDay昨天晚上11点和$today新的一天凌晨1点).

到目前为止我所拥有的是什么

$diff = $today->diff($lastDate);

if($diff->days > 0) {
    $return = false;
} else {
    $return = true;
}
Run Code Online (Sandbox Code Playgroud)

问题是:这似乎可以计算出日期是否超过彼此超过24小时,并且只有true在这种情况下才会设置.

我可以考虑通过比较来比较它们$date->format('d');,但这意味着我也会检查年份和月份.我知道这样可以完美地工作,但这将是一个五行或左右.

所以我的问题是:有没有更有效的方法来检查这个?这样的任何操作diff()都会给我一个单行的结果?

php datetime datediff

4
推荐指数
1
解决办法
6536
查看次数

如何在Symfony2项目中删除实体类

最初设计项目时,我们有几个实体到目前为止尚未使用(并且我们不打算在不久的将来实现它们)。嗯,我想从我的项目中删除它们。我将这样进行(手动执行所有步骤):

  1. 从我当前使用的实体中删除所有关系。
  2. 删除doctrime ORM文件 src/Resources/config/doctrine
  3. 从中删除类PHP文件 src/Entity
  4. 从数据库中删除表

我想知道的是:是否有任何例程(例如控制台命令)可以支持此过程?例如,如果我跑步

php app/console doctrine:schema:update --dump-sql
Run Code Online (Sandbox Code Playgroud)

删除所有关系并删除文件后,得到删除相应表的SQL语句吗?

php data-modeling symfony doctrine-orm

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

如何为NotEqualTo约束定义一组值?

使用NotEqualTo验证器约束时,我想定义多个值.

这是它用于一个值的方式:

# src/SocialBundle/Resources/config/validation.yml
Acme\SocialBundle\Entity\Person:
    properties:
        age:
            - NotEqualTo:
                value: 15
Run Code Online (Sandbox Code Playgroud)

但是如何定义一组(数组)值?我试过了

            - NotEqualTo:
                value: 15
                value: 16
                value: 17
Run Code Online (Sandbox Code Playgroud)

            - NotEqualTo:
                value: [15, 16, 17]
Run Code Online (Sandbox Code Playgroud)

但这两种方法都不起作用.

validation symfony

4
推荐指数
1
解决办法
152
查看次数

如何在PHP中展平数组?

我有一个包含4个数组的数组,每个数组都有一个值.

array(4) {
  [0]=>
  array(1) {
    ["email"]=>
    string(19) "test01@testmail.com"
  }
  [1]=>
  array(1) {
    ["email"]=>
    string(19) "test02@testmail.com"
  }
  [2]=>
  array(1) {
    ["email"]=>
    string(19) "test03@testmail.com"
  }
  [3]=>
  array(1) {
    ["email"]=>
    string(19) "test04@testmail.com"
  }
}
Run Code Online (Sandbox Code Playgroud)

什么是最好的(=最短的本机PHP函数首选)方法来展平数组,以便它只包含电子邮件地址作为值:

array(4) {
  [0]=>
  string(19) "test01@testmail.com"
  [1]=>
  string(19) "test02@testmail.com"
  [2]=>
  string(19) "test03@testmail.com"
  [3]=>
  string(19) "test04@testmail.com"
}
Run Code Online (Sandbox Code Playgroud)

php arrays function flatten multidimensional-array

4
推荐指数
1
解决办法
2398
查看次数

有没有一种简单的方法来创建一个新的Wildfly服务器实例

有没有一种简单的方法来创建一个新的Wildfly服务器实例.

在JBoss AS5中你所要做的就是创建一个默认或全部的副本并启动jboss:

run.sh -c [New instance name]
Run Code Online (Sandbox Code Playgroud)

没有这样的选择 standalone.sh

jboss5.x wildfly

4
推荐指数
1
解决办法
2492
查看次数

Symfony3升级时的命名空间问题

我目前正在尝试将我的Symfony2应用程序升级到Symfony3.我有一个SecurityController覆盖了FOSUserBundle\SecurityController:

namespace Acme\MyBundle\Controller;

use Symfony\Component\DependencyInjection\ContainerAware;

class SecurityController extends ContainerAware
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

但我得到一个ClassNotFoundException:

尝试从命名空间"Symfony\Component\DependencyInjection"加载类"ContainerAware".
您是否忘记了另一个命名空间的"use"语句?

是否有任何我在升级说明中找不到的更改.有人能指出我的方法来解决这个问题吗?

namespaces upgrade symfony

4
推荐指数
1
解决办法
2208
查看次数

多对多关系制定者

我的实体之间有多对多的关系:PurchaseOrderSupplier.当我想Supplier在我的Symfony项目中添加订单时,我总是会收到以下错误消息:

属性"供应商"在"Acme\AppBundle\Entity\PurchaseOrder"类中不公开.也许你应该创建方法"setSuppliers()"?

当我setSuppliers()PurchaseOrder实体中自己创建一个函数时:

public function setSuppliers(\Acme\AppBundle\Entity\Supplier $suppliers )
{
    $this->suppliers = $suppliers;

    return $this;
}
Run Code Online (Sandbox Code Playgroud)

我收到此错误消息:

可捕获致命错误:传递给Doctrine\Common\Collections\ArrayCollection :: __ construct()的参数1必须是类型数组,给定对象,在/ var/www/symfony/vendor/doctrine/orm/lib/Doctrine/ORM中调用/UnitOfWork.php在第519行并在/var/www/symfony/vendor/doctrine/collections/lib/Doctrine/Common/Collections/ArrayCollection.php第47行中定义

有任何想法吗?

/**
 * @Route("order/{id}/supplieradd", name="order_supplieradd")
 * @Secure(roles="ROLE_ADMIN")
 */
public function newSupplierAction(Request $request, $id)
{
    $purchaseOrder = $this->getDoctrine()
    ->getRepository('AcmeAppBundle:PurchaseOrder')
    ->find($id);

    if (!$purchaseOrder) {
        throw $this->createNotFoundException(
                'No order found for id '.$id
        );
    }

    $form = $this->createForm(new AddSupplierType(), $purchaseOrder);

    // process the form on POST
    if ($request->isMethod('POST')) {
        $form->bind($request);
        if ($form->isValid()) …
Run Code Online (Sandbox Code Playgroud)

mapping setter symfony doctrine-orm

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

如何使用一个命令选择所有标题?

我在我的CSS文件中有这个

h1, h2, h3, h4 {
  color: red;
}
Run Code Online (Sandbox Code Playgroud)

有没有办法用一个语句选择所有标题

h* {
  color: red;
}
Run Code Online (Sandbox Code Playgroud)

css css-selectors

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

在Web根目录中安装Mediawiki的简短URL

我的Web根目录上正在运行Mediawiki安装。例如可以通过以下方式访问主页

http://example.com/index.php?title=Main_Page
Run Code Online (Sandbox Code Playgroud)

我想更改它,以便短网址是

http://example.com/Main_Page
Run Code Online (Sandbox Code Playgroud)

我的配置如下

#.htaccess
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^(.*)$ /index.php?title=$1 [PT,L,QSA]
RewriteRule ^.*$ /index.php [L,QSA]
Run Code Online (Sandbox Code Playgroud)

// LocalSettings.php
$wgScriptPath = "..";
$wgArticlePath = "/$1";
$wgUsePathInfo = true;
Run Code Online (Sandbox Code Playgroud)

但是,此配置出现500错误。

这是一个有~/user_root/文件夹的服务器。此文件夹包含用户根域的公共HTML文件,例如user-root.com

该文件夹包含几个子文件夹,例如,在这种情况下~/user_root/example,可以通过上面提到的URL进行访问example.com

问题是否基于此文件夹/子文件夹层次结构和$wgScriptPath设置?应该

$wgScriptPath = "..";
Run Code Online (Sandbox Code Playgroud)

被这个相对路径以外的东西代替?如果需要更多信息,请告知。

php .htaccess mediawiki short-url

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