小编hum*_*pdi的帖子

symfony2 twig路径与参数url创建

我得到以下内容:

<a href="{{ path('_be_activatecategory', {'id': category.id, 'active': 1}) }}">Aktivieren</a>
Run Code Online (Sandbox Code Playgroud)

创建

/后端/类别/激活/ 8/1

然后我得到了

<a href="{{ path('_category', {'id': category.id}) }}">
Run Code Online (Sandbox Code Playgroud)

这创造了

/类别?ID = 1

看到不同?我想要的是在第二种情况下与第一种情况完全相同:

/类别/ 1

我怎么能管理这个?为什么path()帮助器没有为我创建带参数的正确url?

编辑:

我的路由看起来像这样:

/**
 * @Route("/category/{id}", name="_category")
 * @Template()
 */
public function categoryAction($id)
{
Run Code Online (Sandbox Code Playgroud)

symfony

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

Symfony2:控制器中动作/路径的完整路径

我需要控制器内部动作的完整路径,通过电子邮件发送.我怎样才能{{ path('_route') }}从我的控制器内部实现类似的东西?

controller symfony

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

PHP:fopen错误处理

我用文件获取文件

$fp = fopen('uploads/Team/img/'.$team_id.'.png', "rb");
$str = stream_get_contents($fp);
fclose($fp);
Run Code Online (Sandbox Code Playgroud)

然后该方法将其作为图像返回.但是当fopen()失败时,因为该文件不存在,它会抛出一个错误:

[{"message":"Warning: fopen(uploads\/Team\/img\/1.png): failed to open stream: No such file or directory in C:\...
Run Code Online (Sandbox Code Playgroud)

显然,这将以json的形式回归.

问题现在是:我如何捕获错误并阻止该方法直接将此错误抛给客户端?

php error-handling fopen

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

Symfony2:如何使用datetime-objects进行操作

我无法真正了解如何在symfony2中使用datetime-objects.

我在数据库中有几个游戏条目,其中一个具有datetime属性.现在我想与实际日期进行比较:我想拥有过去10天的所有记录.我怎么能实现这个目标?

我试过这个

date($game->getZeit(), mktime(0,0,0,date('m'),date('d'),date('y')))
Run Code Online (Sandbox Code Playgroud)

得到一个我可以比较的比较日期

date('Y.m.d H:i:s', mktime(0,0,0,date('m'),date('d'),date('y')));
Run Code Online (Sandbox Code Playgroud)

但那没有用,因为

$game->getZeit()
Run Code Online (Sandbox Code Playgroud)

无法转换为字符串.为什么?那我怎么调试这个?我怎么知道它的价值?如何将其与其他日期时间或日期字符串进行比较?

快速帮助将非常感谢!:)

亲切的问候

datetime symfony

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

Symfony2 + Facebook-SDK 4.0 - 如何集成?

如果现在更新我的symfony项目到facebook-sdk-v4.我现在的问题是如何将其集成到我的控制器中使用?

对于旧版本,我在autoload.php中有以下行

//Loading facebook from vendor
require_once __DIR__ . '/../vendor/facebook/php-sdk/src/facebook.php';
Run Code Online (Sandbox Code Playgroud)

然后在控制器中我可以这样

$facebook = new \Facebook(array(
  'appId'  => $this->container->getParameter('fb_appid'),
  'secret' => $this->container->getParameter('fb_secret')
));
$fb_userid = $facebook->getUser();
Run Code Online (Sandbox Code Playgroud)

在我的控制器中没有任何使用声明.

现在4.0版本有点不同了.供应商中不再有facebook.php文件,因此我现在不知道需要什么.和API调用也不同,它看起来像

FacebookSession::setDefaultApplication('YOUR_APP_ID', 'YOUR_APP_SECRET');
Run Code Online (Sandbox Code Playgroud)

当我执行它时,symfony告诉我它无法从全局命名空间加载"FacebookSession",如果我忘记了use语句.

有没有人有经验如何在symfony2中包含新的facebook php sdk?

php facebook symfony facebook-php-sdk

7
推荐指数
1
解决办法
5468
查看次数

Laravel:如何将当前url作为带参数的视图助手

我想在我的视图中构建一个链接,指向与放置它的那个页面相同的页面.我希望能够给出一个参数.

例如,我想改变语言.我有一条路线

domain.com/{lang}/xyz
Run Code Online (Sandbox Code Playgroud)

在我看来,我想做点什么

<a href="{{ URL::action(this, ['lang' => 'en']) }}">EN</a>
Run Code Online (Sandbox Code Playgroud)

所以我可以轻松地重新加载页面,但只需更改"lang"参数.

希望它可以理解.请尽力帮助我.

(另一个问题:是否没有资源,例如Laravel中所有视图助手的列表?我在哪里知道哪些视图助手可用?)

php view-helpers laravel

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

html 文本覆盖自身

通过ajax(jQuery)将一些纯文本作为html粘贴到div中后,文本会覆盖自身。

例子

我不知道发布我的所有代码是否有帮助,但也许有人以前遇到过同样的问题,可以给我一个提示。

我正在使用 Symfony2 和 jQuery(ajax 请求操作)。

这是ajax请求和回调:

$('.tile').click(function(e){
    e.preventDefault();

    var thisTileImg = e.target
    var x = thisTileImg.x;
    var y = thisTileImg.y;
    var tileID = thisTileImg.id;

    // execute ajax-request to turnAction and give parameters for x and y of the tile
    var request = $.ajax({
      url: pathTurnAction,
      type: "POST",
      data: {'x':x, 'y':y, 'tileID':tileID},
      dataType: "html"
    });

    request.done(function(msg) {
        var obj = jQuery.parseJSON(msg);
        switch(obj.result){
            case -1:
      showPopup(obj.text, obj.button);
                break;
            case 0:
                thisTileImg.src = pathTileImg0;
                break;
            case 1:
                thisTileImg.src = pathTileImg1;
                break; …
Run Code Online (Sandbox Code Playgroud)

css ajax jquery

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

LiipImagineBundle:如何在控制器中应用过滤器?

我想使用LiipImagineBundle调整我在控制器中上传的图片的大小.

  $extension = $file->guessExtension();
  $newfilename = sha1(uniqid(mt_rand(), true));
  $tmp_folder = $this->get('kernel')->getRootDir() . '/../web/uploads/tmp/'; // folder to store unfiltered temp file
  $tmp_imagename = $newfilename.'.'.$extension;
  $file->move($tmp_folder, $tmp_imagename);

  $tmpImagePathRel = '/uploads/tmp/' . $tmp_imagename;
  $processedImage = $this->container->get('liip_imagine.data.manager')->find('profilepic', $tmpImagePathRel);
  $newimage_string = $this->container->get('liip_imagine.filter.manager')->get($request, 'profilepic', $processedImage, $tmpImagePathRel)->getContent();

  unlink($tmp_folder . $tmp_imagename); // eliminate unfiltered temp file.
  $perm_folder = $this->get('kernel')->getRootDir() . '/../web/uploads/userimages/';
  $perm_imagepath = $perm_folder . $newfilename . '.jpeg';
  $f = fopen($perm_imagepathh, 'w');
  fwrite($f, $newimage_string); 
  fclose($f);
Run Code Online (Sandbox Code Playgroud)

这带来了以下错误:

Attempted to call method "get" on class "Liip\ImagineBundle\Imagine\Filter\FilterManager" in C:\...\UserController.php line xx. …
Run Code Online (Sandbox Code Playgroud)

symfony liipimaginebundle

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

在FOSElasticaBundle中排序

我在我的项目中使用FOSElasticaBundle来搜索我的Player实体.因为我只想isactive在值上搜索具有属性的实体,所以1我按照"过滤结果并执行默认查询"的文档:FriendsOfSymfony/FOSElasticaBundle/README.md

$query = new \Elastica\Query\QueryString($searchterm);
$term = new \Elastica\Filter\Term(array('isactive' => true));

$filteredQuery = new \Elastica\Query\Filtered($query, $term);
$players = $this->get('fos_elastica.finder.xxx.player')->find($filteredQuery);
Run Code Online (Sandbox Code Playgroud)

我的包的配置如下所示:

fos_elastica:
clients:
    default: { host: localhost, port: 9200 }
serializer:
    callback_class: FOS\ElasticaBundle\Serializer\Callback
    serializer: serializer
indexes:
    xxx:
        client: default
        types:
            player:
                mappings:
                    firstname: { boost: 3 }
                    lastname: { boost: 3 }
                serializer:
                    groups: [elastica, Default]
                persistence:
                    driver: orm
                    model: xxx\FrontendBundle\Entity\Player
                    listener: ~
                    provider: ~
                    finder: ~
Run Code Online (Sandbox Code Playgroud)

现在我想做一些排序并用限制和偏移量削减结果.我怎样才能实现这一目标?

我发现了一个像这样的解

$finalQuery = new \Elastica\Query($boolQuery);
$finalQuery->setSort(array('price' …
Run Code Online (Sandbox Code Playgroud)

symfony elasticsearch foselasticabundle

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

Laravel:当有人访问后路由而不给出post参数时,如何防止RouteCollection.php中的MethodNotAllowedHttpException?

Laravel:当有人访问后路由而不给出post参数时,如何防止RouteCollection.php中的MethodNotAllowedHttpException?

当我定义一个邮政路线时,它只能通过邮寄请求进行访问.如果我在浏览器中正常调用url,它会引发异常.怎么预防这个?

post exception laravel

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

Symfony2表单:设置没有实体的表单名称

我在我的控制器中创建一个没有实体的表单如下:

$defaultData = array('message' => 'Assign');
$form_assign = $this->createFormBuilder($defaultData)
  ->add('team', 'text', array('label' => 'Team'))
  ->add('create', 'button', array('label' => 'Create'))
  ->getForm();
Run Code Online (Sandbox Code Playgroud)

现在,当我在视图中渲染表单时

{{ form(form_assign) }}
Run Code Online (Sandbox Code Playgroud)

表单的名称总是"形式",如下所示:

<form name="form" method="post" action>
Run Code Online (Sandbox Code Playgroud)

如何更改表单的名称属性?我使用Symfony版本2.4.2

(我已经在一个类似的问题上阅读了这个评论并试了一下,但它对我没用.)

php forms attributes symfony

0
推荐指数
1
解决办法
6825
查看次数