小编Mr.*_* 14的帖子

使用具有条件的内部联接的Doctrine查询构建器

我想使用Doctrine的查询构建器构造以下SQL:

select c.*
from customer c
join phone p
on p.customer_id = c.id
and p.phone = :phone
where c.username = :username
Run Code Online (Sandbox Code Playgroud)

首先我试过了

$qb->select('c')
    ->innerJoin('c.phones', 'p', Join::ON, $qb->expr()->andx(
        $qb->expr()->eq('p.customerId', 'c.id'),
        $qb->expr()->eq('p.phone', ':phone')
    ))
    ->where('c.username = :username');
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误

Error: expected end of string, got 'ON'
Run Code Online (Sandbox Code Playgroud)

然后我试了一下

$qb->select('c')
    ->innerJoin('c.phones', 'p')
    ->where('c.username = :username')
    ->andWhere('p.phone = :phone');
Run Code Online (Sandbox Code Playgroud)

这似乎有效.但是,有人知道第一次尝试有什么问题吗?我想让第一个工作,因为它更接近于SQL的结构.提前致谢!

注意:我知道我们也可以使用Doctrine编写本机mysql或dql,但我更喜欢查询构建器.

编辑:下面是整个代码

namespace Cyan\CustomerBundle\Repository;

use Cyan\CustomerBundle\Entity\Customer;
use Doctrine\ORM\EntityRepository;
use Doctrine\ORM\Query\Expr\Join;

class CustomerRepository extends EntityRepository
{
    public function findCustomerByPhone($username, $phone)
    {
        $qb = $this->createQueryBuilder('c');

        $qb->select('c')
            ->innerJoin('c.phones', …
Run Code Online (Sandbox Code Playgroud)

sql symfony doctrine-orm

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

Twig标签包括vs功能包括

Twig的标签文档看起来与函数include非常相似.

标签包括:

{% include 'header.html' %}
Run Code Online (Sandbox Code Playgroud)

功能包括:

{{ include('template.html') }}
Run Code Online (Sandbox Code Playgroud)

有人可以指出在什么情况下,一个优先于另一个?谢谢!

php twig

18
推荐指数
1
解决办法
1769
查看次数

Go程序的项目结构在AWS Lambda上运行

我在AWS Compute Blog中找到了以下代码示例:

package main

import (
    "github.com/aws/aws-lambda-go/events"
    "github.com/aws/aws-lambda-go/lambda"
)

func handler(request events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) {
    return events.APIGatewayProxyResponse{
        StatusCode: 200,
        Body:       "Hello World",
    }, nil
}

func main() {
    lambda.Start(handler)
}
Run Code Online (Sandbox Code Playgroud)

由于lambda.Start只接受一个处理程序而Go程序的入口点是主函数,这是否意味着一个CodeStar项目只能由一个处理程序组成?

我理解lambda函数的大小应该很小,最好处理一个功能,但似乎需要创建很多项目并且很难管理.我理解正确吗?

go aws-lambda

8
推荐指数
2
解决办法
1170
查看次数

禁用特定文件夹上的Eclipse Javascript Validator

我想在某些文件夹上禁用Eclipse的Javascript验证,即Yii填充的资产文件夹.我试图通过在Eclipse中执行以下操作来添加验证过滤器以排除该文件夹

  1. 窗口>首选项>验证
  2. 单击"客户端JavaScript验证程序的设置"
  3. 添加排除组>添加规则
  4. 检查文件夹和文件名>选择要排除的文件夹

但是,这似乎不起作用.Eclipse仍然会错误地标记几个jquery文件.有什么见解吗?提前致谢!

javascript eclipse validation

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

Symfony2将值传递给集合表单类型

我有以下实体关系:

  • 客户具有一对多地址
  • 地址有多对一的县和多对一的城市
  • 一个县有一对多的城市.

所以,在我的CustomerType中,我有

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ...
        ->add('addresss', 'collection', array(
            'label' => 'customer.address',
            'type' => new AddressType(),
            'allow_add' => true,
            'allow_delete' => true,
            'by_reference' => false,
        ))
    ;
}
Run Code Online (Sandbox Code Playgroud)

在我的AddressType中,我有

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ...
        ->add('city', 'entity', array(
            'class' => 'MyCustomerBundle:City',
            'query_builder' => function(CityRepository $cr) use ($options) {
                return $cr->getCityQB($options['county']);
            },
            'property' => 'city',
            'empty_value' => '',
        ))
    ;
}
Run Code Online (Sandbox Code Playgroud)

我的目标是只显示相应县的城市集.我可以从$ options中获取CustomerType值,但是如何将值传递给AddressType?那么每个地址都有相应的县来查找城市?

任何帮助,将不胜感激.谢谢!

php symfony

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

带有负边距的CSS正面填充

我在Sonata项目中看到了以下css.

HTML:

<div class="content">
    <div class="header"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS:

.content {
    padding: 20px;
    margin: 0 -20px; /* negative indent the amount of the padding to maintain the grid system */
}

.header {
    padding: 20px 20px 10px;
    margin: -20px -20px 20px;
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,有正面填充然后用负边距否定它们的目的/优势是什么?代码确实有负余量的评论,但我真的没有得到它.为什么不将margin和padding都设置为0?

谢谢!

css

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

使用CSS使<button>和<a>看起来一样

我想让<button>和<a>看起来一样.我发现了一个类似的帖子,建议添加

box-sizing: content-box;
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
Run Code Online (Sandbox Code Playgroud)

但是,在Firefox中查看时,它仍然有轻微的高度差异.这是jsfiddle.有帮助吗?

css

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

未找到Laravel 5自定义包类

我正在创建laravel 5.2包,以下是我的文件

packages/
-Shreeji/
--Ring/
--- composer.json
--- src/
---- Ring.php
---- RingModel.php
---- RingServiceProvider

composer.json

{
 "name": "shreeji/ring",
 "description": "Simple",
 "license": "MIT",
 "authors": [
     {
         "name": "author",
         "email": "email@gmail.com"
     }
 ],
 "autoload": {
        "psr-4": {
             "Shreeji\\Ring\\": "src/"
         }
     },
 "minimum-stability": "dev",
 "require": {
     "Illuminate/support": "~5"
 }
}
Run Code Online (Sandbox Code Playgroud)

Ring.php

namespace Shreeji\Ring;

use Illuminate\Http\Response;

Class Ring {

private $ringmodel;
protected $table_name = null;


function __construct() {

}

function set_table($table_name)
{
    $this->table_name = $table_name;
    $this->ringmodel = New RingModel($this->table_name);
    return $this;
}

} …
Run Code Online (Sandbox Code Playgroud)

php laravel laravel-5 laravel-5.2

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