【问题标题】:Symfony 4 using Logger and Dump inside a ControllerSymfony 4 在控制器中使用 Logger 和 Dump
【发布时间】:2020-02-08 22:34:37
【问题描述】:

我是 Symfony 4 的新手,我正在使用分析器在开发环境中进行调试。

我正在尝试调试控制器中的一个功能/但我不能使用记录器或转储没有出现。

<?php

namespace App\Controller;

use Sonata\AdminBundle\Controller\CRUDController as Controller;
use Sonata\AdminBundle\Datagrid\ProxyQueryInterface;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use Psr\Log\LoggerInterface;

class CRUDController extends Controller
{
private $logger;

public function __construct(LoggerInterface $logger)
{
    $this->logger = $logger;
}

public function batchActionDownload(ProxyQueryInterface $selectedModelQuery)
{

    $this->logger->debug('exampleMethod :: $ourVar at interesting time', [
        'our_var' => $selectedModelQuery
    ]);

    var_dump($selectedModelQuery);
    dump($selectedModelQuery);

    return new RedirectResponse(
        $this->admin->generateUrl('list', $this->admin->getFilterParameters())
    );
}

我没有错误,只是我的调试没有显示出来。

知道我做错了什么吗?

【问题讨论】:

  • 调用该方法时还有其他事情发生吗?如果发出重定向,您是否检查过跳过该重定向时是否打印输出?

标签: symfony symfony4


【解决方案1】:

通常定义路由的最佳方式是使用注解。你是新人,我不知道你已经定义了你的路线。

但如果您的函数似乎没有被调用。所以尝试设置路由并在浏览器中调用它。

/**
 * @Route("/mycrud", name="mycrud")
 */
public function batchActionDownload(ProxyQueryInterface $selectedModelQuery)

然后你应该可以在浏览器中打开你的函数http://yourdomain/mycrud。然后你应该看到调试栏和你的var_dump

接下来就是在函数中重定向。所以你输出一些东西并重定向。你看不到那个地方的输出。例如,您必须在输出之前停止代码,使用exit

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-16
    • 2020-11-11
    • 2019-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多