我正在使用Symfony2和Twig.我的控制器中有一个函数(下面),它返回一个特定的文本.是否可以直接从我的模板调用该函数并将模板中的{{text}}更改为函数返回的任何内容,可能是通过Ajax?
这是我的功能:
public function generateCode($url) {
$url = $_SERVER['SERVER_NAME'] . '/embed/' . $url;
$return = '<iframe>'.$url.'</iframe>';
return $return;
}
Run Code Online (Sandbox Code Playgroud)
另一个控制器函数调用上面的函数并呈现我的模板:
public function getCodeAction($url) {
$text = $this->generateCode($url);
return $this->render('MyMyBundle:User:code.html.twig', array('text' => $text));
}
Run Code Online (Sandbox Code Playgroud)
在我使用的模板中:
{{ text }}
Run Code Online (Sandbox Code Playgroud)
显示值.
我正在从父母那里打开一个paypal窗口window.open().付款并重定向回我的页面后(在弹出窗口中),我想关闭弹出窗口并更新父窗口URL.
我发现这可以通过window.opener.location工作.
然而控制台显示
window.opener.location为null
重定向后因为子窗口更改,弹出窗口会丢失有关开启器的信息.
好极了 现在有什么办法解决这个问题吗?也许为听父母的网址的父母添加一种"听众"?
我在存储库类中使用以下方法来查找数据库中的某些标记:
public function getItemsByTag($tag, $limit = null)
{
$tag = '%'.$tag.'%';
$qb = $this->createQueryBuilder('c');
$qb->select('c')
->where($qb->expr()->like('c.tags', '?1'))
->setParameter(1, $tag)
->addOrderBy('c.clicks', 'DESC');
if (false === is_null($limit))
$qb->setMaxResults($limit);
return $qb->getQuery()->getResult();
}
Run Code Online (Sandbox Code Playgroud)
这很好..但是:如何添加2个额外的变量(其中:reviews = 1,enabled = 1)?我试过andwhere(),但我无法弄明白.
我也发现了这样的事情:
public function getItems($limit = null)
{
$qb = $this->createQueryBuilder('b')
->select('b')
->add('where', 'b.reviewed = 1')
->add('where', 'b.enabled = 1')
->addOrderBy('b.name', 'ASC');
// ...
}
Run Code Online (Sandbox Code Playgroud)
不会工作......
任何提示?
我对ubuntu并不大,但我设法在我的客户端设置git并在我感到自豪的服务器上gitosis.我将我的本地ssh公钥添加到gitosos的授权密钥,并且可以克隆,推送,提交等.一切正常,从我的本地机器到服务器 - 来回.
但是,由于服务器也充当我的网络服务器,我只需要连接到服务器并在我的一个webroot文件夹中创建一个"git clone git @ localhost:gitproject.git",但它根本不起作用.
我是否必须将服务器pub密钥添加到授权主机?如果是这样,怎么样?或者还有其他方法吗?
谢谢
我试图使用FOS_UserBundle来管理我的用户,但每次我尝试更新数据库
php app/console doctrine:schema:update --force
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
在字段或标识符列映射中实体上的列'username'的重复定义.用户捆绑包
当我注释掉用户名时,它也会出现'电子邮件'.
我的用户类实际上非常基本:
namespace My\MyBundle\Entity;
use FOS\UserBundle\Entity\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="fos_user")
*/
class User extends BaseUser
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string", length="100")
*/
protected $username;
/**
* @ORM\Column(type="string", length="100")
*/
protected $name;
/**
* @ORM\Column(type="string", length="100")
*/
protected $firstname;
/**
* @ORM\Column(type="string", length="150")
*/
protected $email;
}
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?
我使用Symfony2和monolog在定义的日志文件(mylogfile.log)中写入特定日志:
#config_dev.yml
monolog:
handlers:
main:
type: stream
path: %kernel.logs_dir%/%kernel.environment%.log
level: debug
file:
type: stream
path: %kernel.logs_dir%/mylogfile.log
level: info
Run Code Online (Sandbox Code Playgroud)
我通过以下方式访问控制器中的日志文件:
$logger = $this->get('logger'); // Log
$logger->info('somelogcontent');
Run Code Online (Sandbox Code Playgroud)
现在我的问题是我的日志文件包含整个信息级别,这意味着它给了我所有app.INFO日志(这是我想要的)和request.INFO(我真的不需要):
[2012-04-04 11:13:17] request.INFO: Matched route ... blablabla
[2012-04-04 11:13:17] app.INFO: somelogcontent
...
Run Code Online (Sandbox Code Playgroud)
有没有办法不记录Request.INFO?
麦克风
我在Twig中经历一个循环:
{% for item in items %}
<div class="description">
Title: {{ item.name }}<br />
Price: {{ item.price }}
</div>
{% else %}
<p>...</p>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
如果item.price为空,则会抛出异常.当某个值为空时,我不能简单地强制Twig给出"没有"吗?
或者我是否总是需要{%if item.x%} {{item.x}} {%endif%}获取所有值?
我正在尝试将一个外部库(PHP Simple DOM Parser,http://simplehtmldom.sourceforge.net/index.htm)添加到Symfony2项目中.我参加了一个教程,解释了如何将第三方库包含在Symfony2中http://www.kiwwito.com/article/add-third-party-libraries-to-symfony-2.
我设置了一个类文件,如:
# vendor/phpsimpledom/lib/Phpsimpledom/simple_html_dom.php
require_once __DIR__.'/src/simple_html_dom.php';
class Phpsimpledom_Phpsimpledom extends simple_html_dom_node {
}
Run Code Online (Sandbox Code Playgroud)
并在我的Autoloader(autoload.php)中注册了我的课程:
$loader->registerNamespaces(array(
...
'Phpsimpledom' => __DIR__.'/../vendor/phpsimpledom/lib/',
...
),));
Run Code Online (Sandbox Code Playgroud)
我打电话给:
$phpsimpledom = new \Phpsimpledom();
Run Code Online (Sandbox Code Playgroud)
但这给我带来了一个错误(致命错误:未找到类'simple_html_dom_node').
但是:库的主文件(simple_html_dom.php)由不属于类的函数组成.
当我尝试直接使用该文件时,它也不起作用:
$loader->registerNamespaces(array(
...
'Phpsimpledom' => __DIR__.'/../vendor/phpsimpledom/lib/Phpsimpledom/src/simple_html_dom.php',
...
),));
Run Code Online (Sandbox Code Playgroud)
任何提示?
谢谢!
我正在为Symfony2项目和其他项目寻找一个好的编辑器.我真的不需要花哨或成千上万的脚本加载等.我个人更喜欢简单而干净的结构化IDE - 这就是为什么我总是倾向于关闭Eclipse.
我在OS X Lion的Macbook上运行Mamp.
目前我总是回到科莫多.所以我的问题是:在Eclipse和Netbeans中支持Symfony有什么好处(我实际上都试过了)?
我不介意编辑和在编辑器和浏览器之间来回切换.我从来没有真正理解为什么需要有一个巨大的应用程序.除了代码智能和编辑器中集成的颠覆工具之外,我看不到任何其他优点.有人可以同意吗?
我知道这个问题已被问过几次了,但我想解释一下我的立场,如果有专业知识的人可以给我一个很好的答案,我会很高兴.
我目前正在开展两个大型项目,这些项目都是专用的,并且在他们自己的debian服务器上运行.我对PHP3 +非常有经验,这意味着我总是用大约10年的时间做硬编码PHP方式,拥有自己的文件结构,库等等.现在,对于这两个项目,我需要有a)安全性,b)负责人和c)易于实施(这对我来说节省时间).
据我所知,到目前为止,两者都是很好的框架.Zend Framework是非常模块化的,所以我基本上可以选择我想要的功能,如果我错了,请纠正我 - 而且它更"原始"-PHP导向,这将为开始提供良好的基础.另一方面,Symfony非常注重社区,并且有很多东西.我注册了symfony google小组并整天收到问题和答案.所以在获得支持方面,我认为symfony是首选.
现在:对于具有非常安全的客户区域,注册和与数据库对应的智能功能的项目,基本上需要框架.我还需要从现有的mysql数据库迁移旧数据.我需要一些自编的php函数,jquery和paypal api.(这两个项目实际上是大量支付和计算导向)
symfony ×8
twig ×2
doctrine ×1
eclipse ×1
frameworks ×1
gitosis ×1
ide ×1
javascript ×1
libraries ×1
monolog ×1
ubuntu ×1
window.open ×1