小编Fae*_*ery的帖子

将变量从Symfony2 PHP文件发送到js文件

我是JavaScript的新手,我对这方面的教程不太好.如果有,请告诉我阅读它们.

我想要做的是将变量从我的PHP控制器传递到.js文件 - 我想填充Highcharts变量.

我知道我可以发送响应,但我也需要加载模板.

这是模板:

...

{% block body %}

 <h1>Months</h1>

 // This is the Chart:    
 <div id="container" style="width:100%; height:400px;"></div>

    {%block javascript%}
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
    <script src="http://code.highcharts.com/highcharts.js"></script>

        <script src="{{ asset('bundles/acmebudgettracker/js/month.js') }}"></script>
    {%endblock%}

{% endblock %}
Run Code Online (Sandbox Code Playgroud)

.js文件被调用 month.js

      $(function () { 
$('#container').highcharts({
    chart: {
        type: 'bar'
    },
    title: {
        text: 'Budget for months'
    },
    xAxis: {
        categories: ['Spent', 'Saved']
    },
    yAxis: {
        title: {
            text: 'Fruit eaten'
        }
    },
    series: [{
        name: 'Jane',
        data: [1, 0, 4]
    }, {
        name: 'John', …
Run Code Online (Sandbox Code Playgroud)

javascript highcharts symfony

5
推荐指数
2
解决办法
6723
查看次数

使用Symfony的Form Event删除发送到表单的一些数据

我有复选框,我想查找带有选中复选框的项目,并只将它们发送到数据库.所以我做了这个:

class NotNeededFieldsSubscriber implements EventSubscriberInterface
{
    public static function getSubscribedEvents()
    {
        return array(FormEvents::PRE_BIND => 'preBindData');
    }

    public function preBindData(FormEvent $event)
    {    
        $data = $event->getData();

        $count = count($data['items']);

        for ($i=0; $i < $count; $i++){
             if (!array_key_exists('enabled', $data['items'][$i])){   
                unset($data['items'][$i]);               
             } 
        }       

        $event->setData($data);

    }
}
Run Code Online (Sandbox Code Playgroud)

当我测试看$ event-> getData正是我想要的.

在控制器中:

 $form = $this->formFactory->create(new ItemType(), $item);

        if ($request->isMethod('POST')) {
            $form->bind($request);           
                if ($form->isValid()) {  

                    $this->em->persist($item);
                    $this->em->flush();
                }
        }

        return $this->redirect($this->router->generate('home'));
Run Code Online (Sandbox Code Playgroud)

问题是仍然检查和未检查的项目在数据库中:(

任何想法为什么以及如何解决这个问题?首先十分感谢!:)

forms symfony

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

两种形式 - 两个提交按钮.控制器如何识别单击了哪个按钮?

我有两个表单,一个页面有两个提交按钮,一个视图和一个控制器应该管理它们.如果单击第一个动作,我希望它执行一个动作,如果是第二个动作,我希望它执行另一个动作.我试过这个,其中edit是表单的名称,但它不起作用:

if($this->getRequest()->get('edit'))
Run Code Online (Sandbox Code Playgroud)

我也尝试为提交按钮设置值,但我也无法实现.请帮我找到如何识别按下哪个按钮的方法.:)

php doctrine symfony

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

如何在Clojure中运行测试文件

我正在使用jEdit,我想要做的是写一个文件并运行测试.我对运行测试的过程感兴趣,而不是文件本身.

所以我写了这个简单的函数 File.clj

(defn abs [n]
  (if (neg? n) (- n) n))
Run Code Online (Sandbox Code Playgroud)

而这个测试在 TheTest.clj

(use 'clojure.test)

(load-file "File.clj")

(deftest sample-test
  (testing "abs"
    (is (= 5 (abs (5))))))

(run-tests)
Run Code Online (Sandbox Code Playgroud)

然后我运行该文件,TheTest.clj但它说:

java.io.FileNotFoundException: File.clj (The system cannot find the file specified) (TheTest.clj:49)

有人可以告诉我这是做事情的方法,如果不是如何运行测试:(没有必要在jEdit,它可能在命令提示符,如果它应该.也有我leiningen安装和File.clj和TheTest.clj我也尝试在加载文件函数中提供文件的完整路径,但没有成功.

非常感谢,好人!:)

testing jedit clojure

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

如何使用 Doctrine 对连接表求和

我有 2 个相关实体 - 类别和费用。费用有一个日期 - 费用发生的时间。

类别实体与多个费用实体具有一对多关系,这些实体本身具有名称(产品)和价格属性。

我想计算当月单个类别的所有费用-> 价格属性的总和。(我有工作 findExpensesForMonthAndCategory 方法)

你能帮我吗?

类别

class Category
{
    protected $name;
    protected $expenses;

    public function __construct()
    {
        $this->expenses = new ArrayCollection();
    }
}
Run Code Online (Sandbox Code Playgroud)

费用

class Expense
{
    protected $category;
    protected $product;
    protected $price;
    protected $date;
}
Run Code Online (Sandbox Code Playgroud)

symfony doctrine-orm twig

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

在Ruby中否定一个谓词Proc

我有一个Proc,它是谓词.

Proc.new { |number| number.even? }
Run Code Online (Sandbox Code Playgroud)

有没有办法以某种方式创建另一个具有相反含义的Proc?我不能改变Proc的"体",因为Proc将作为函数参数.所以我想要这样的东西:

not(Proc.new { |number| number.even? }
# which of course doesn't work :(
Run Code Online (Sandbox Code Playgroud)

而我希望它也能像这样做

Proc.new { |number| number.odd? }
Run Code Online (Sandbox Code Playgroud)

我的想法是,我想要一个类似于此的函数:

def negate(proc)
  negated proc with meaning opposite of this of proc
end
Run Code Online (Sandbox Code Playgroud)

非常感谢你提前!

ruby

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

根据参数 - 名称选择要执行的功能

我有不同的功能,但每个都有不同数量的参数和不同的参数.我希望能够只执行其中一个,并根据函数的名称作为字符串执行此操作.我试过这个:

def execute_function(function_name, arg1, arg2, arg3):
    return {
        'func1': func1(arg1),
        'func2': func2(arg1, arg3),
        'func3': func3(arg2),
    }[function_name]
Run Code Online (Sandbox Code Playgroud)

但它执行所有功能:(无论什么是字符串function_name.

你有任何想法为什么会这样,以及如何实现我想要的.(我是Python的新手).非常感谢你提前!:)

python python-3.3

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

在Haskell的终端迷宫游戏

我想在Haskell中实现一个迷宫游戏 - 迷宫将是ASCII符号,我希望它是彩色的 - 例如墙是蓝色的"#",硬币是黄色的'o'等等,我正在看System-Console-ANSI.

我想问一下是否可以用这个包来做这件事我正在考虑如何在动作发生时刷新labirynth(例如它可以有硬币,用'o'表示,当英雄时硬币上的步骤,他得到它,它应该消失) - 将在屏幕上打字并打印迷宫再次顺利完成工作?

如果系统控制台ANSI不能完成这项工作,你能否给我一些想法和数据包?非常感谢你提前!

haskell ansi

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

Doctrine的日期字段 - 如何编写查询

我正在使用Symfony2和Doctrine.

我有一个日期字段,这里是:

/**
  * @ORM\Column(type="date")
  */
 protected $date;
Run Code Online (Sandbox Code Playgroud)

在我的表单中,我使用文本字段来避免Chrome默认的datepicker,但我在数据库中插入DateTime对象:

if ($request->isMethod('POST')) {
        $form->bind($request);

        //Convert string date to DateTime object and send it to database as object
        $dateObj = \DateTime::createfromformat('d-m-Y', $expense->getDate());
        $expense->setDate($dateObj);
        // ...
Run Code Online (Sandbox Code Playgroud)

然后我想找到具有特定日期的所有项目:

public function findExpensesForDate($user, $date)
{
    $q = $this
        ->createQueryBuilder('e')
        ->where('e.date = :date')
        ->andWhere('e.user = :user')
        ->setParameter('date', $date)
        ->setParameter('user', $user)
         ->getQuery();

    return $q->getResult();
}
Run Code Online (Sandbox Code Playgroud)

并称之为:

$expenses_for_today = $this->repository->findExpensesForDate($this->user, $today);
Run Code Online (Sandbox Code Playgroud)

什么时候什么都不返

$today = new /DateTime();
Run Code Online (Sandbox Code Playgroud)

并返回结果

$today_obj = new /DateTime();
$today = $today_obj->format('Y-m-d'); 
Run Code Online (Sandbox Code Playgroud)

那么为什么当我将日期作为对象时,这不起作用?是不是使用日期字段的原因是利用DateTime对象的查询?我想我错过了一些微不足道的重要事情,但我看不清楚是什么,或者我不能很好地理解这种情况.我的理解是这样的:字段是date类型,所以我应该在其中插入DateTime对象,在查询时我也应该使用DateTime对象.你能帮我解决这个问题吗?

PS:我尝试将字段更改为datetime:

 /**
  * @ORM\Column(type="datetime") …
Run Code Online (Sandbox Code Playgroud)

date symfony doctrine-orm

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

使用哪个更快更好 - 查询数据库或迭代数组以查找元素之和

我正在使用 Symfony 2.2 和 Doctrine。我有实体产品,其中有价格字段。在我的控制器中,我需要获取一些产品。所以我有这样的事情:

$products = $this->productRepository->findNeededProducts(some criteria for the products);
Run Code Online (Sandbox Code Playgroud)

然后我需要找到所有需要的产品的价格总和。

哪个更好更快-做这样的事情:

$sum = 0;
foreach ($products as $p) {
    $sum += $p->getPrice();
}
Run Code Online (Sandbox Code Playgroud)

或者编写一个新的查询方法,如下所示:

public function findSumofProcucts(same criteria here)
{
    $q = $this->createQueryBuilder('p')
        ->add('select', 'SUM(p.price)')
        ->where('p.user = :user') //for example  
        ->setParameter('user', $user)
        ->getQuery();

    return $q->getSingleScalarResult();

}
Run Code Online (Sandbox Code Playgroud)

如果我编写查询,则两个查询 - 用于获取所需的产品和用于查找其总和将几乎相同,只是总和将具有->add('select', 'SUM(p.price)')并将返回SingleScalarResult,这不是重复吗?所以我无法决定哪个更好。

如果您向我展示最佳实践是什么,我将非常感激。预先非常感谢您!:)

doctrine symfony

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