我想使用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) 标签包括:
{% include 'header.html' %}
Run Code Online (Sandbox Code Playgroud)
功能包括:
{{ include('template.html') }}
Run Code Online (Sandbox Code Playgroud)
有人可以指出在什么情况下,一个优先于另一个?谢谢!
我在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函数的大小应该很小,最好处理一个功能,但似乎需要创建很多项目并且很难管理.我理解正确吗?
我想在某些文件夹上禁用Eclipse的Javascript验证,即Yii填充的资产文件夹.我试图通过在Eclipse中执行以下操作来添加验证过滤器以排除该文件夹
但是,这似乎不起作用.Eclipse仍然会错误地标记几个jquery文件.有什么见解吗?提前致谢!
我有以下实体关系:
所以,在我的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?那么每个地址都有相应的县来查找城市?
任何帮助,将不胜感激.谢谢!
我在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?
谢谢!
我想让<button>和<a>看起来一样.我发现了一个类似的帖子,建议添加
box-sizing: content-box;
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
Run Code Online (Sandbox Code Playgroud)
但是,在Firefox中查看时,它仍然有轻微的高度差异.这是jsfiddle.有帮助吗?
我正在创建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 ×3
css ×2
symfony ×2
aws-lambda ×1
doctrine-orm ×1
eclipse ×1
go ×1
javascript ×1
laravel ×1
laravel-5 ×1
laravel-5.2 ×1
sql ×1
twig ×1
validation ×1