使用Pandas,我仍然是Python的新手,我在调试Python脚本时遇到了一些问题.
我收到以下警告信息:
[...]\pandas\core\index.py:756: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal
return self._engine.get_loc(key)
Run Code Online (Sandbox Code Playgroud)
而且无法找到它的来源.
经过一些研究,我试图在Pandas lib文件(index.py)中做到这一点:
try:
return self._engine.get_loc(key)
except UnicodeWarning:
warnings.warn('Oh Non', stacklevel=2)
Run Code Online (Sandbox Code Playgroud)
但这并没有改变警告信息.
1)有symfony方法吗?
我有一个基本表单(没有映射到数据库),有一些选择字段,例如:
$builder->add('civility', 'choice', array('choices'=> array('m' => 'M.', 'mme' => 'Mme', 'mlle' => 'Mlle')))
Run Code Online (Sandbox Code Playgroud)
我怎样才能 - 在表单被提交之后 - 在动作中(或者更好的是,在模板中),检索选项的标签值而不是表单提交的值?(在这种情况下,我希望能够在模板中而不是"m"渲染"M.")
我在考虑类似的事情 $form->get("civility")->getChoiceLabel($form->get("civility")->getData())
但是我没有在文档中找到这样的东西(尽管在Symfony1中有类似的东西).
2)如果真的没有,最好的方法是什么?
因此,我正在考虑创建一些方法来实现,在表单使用的数据类中,如:..
private $choices = array("civility" => array('m' => 'M.', 'mme' => 'Mme', 'mlle' => 'Mlle'));
static public function getChoiceLabel($choice_value, $field_name)
{
return self::$choices[$field_name][$choice_value];
}
static public function getChoices($field_name)
{
return self::$choices[$field_name];
}
Run Code Online (Sandbox Code Playgroud)
但问题是我们不应该在twig模板中使用静态方法(我必须使它能够在表单生成,buildForm方法中使用静态,而不是复制一些代码).
我正在使用事件监听器onKernelResponse.
尽管我用过:
if (HttpKernelInterface::MASTER_REQUEST != $event->getRequestType()) {
return;
}
Run Code Online (Sandbox Code Playgroud)
它MASTER_REQUEST在我的动作中有两次,在<!DOCTYPE html> <html> <head>等之前有一次,而另一次在布局结束后排除.
他是我的services.yml:
history.listener:
class: VENDOR\MyBundle\Service\HistoryListener
arguments: [@doctrine.orm.entity_manager, @logger, @history]
tags:
- { name: kernel.event_listener, event: kernel.controller, method: onKernelController }
- { name: kernel.event_listener, event: kernel.response, method: onKernelResponse }
Run Code Online (Sandbox Code Playgroud)
我做错什么了吗 ?
我想从我的实体生成 SQL。
我知道命令 php app/console doctrine:schema:create --dump-sql和doctrine:schema:update,但显然没有办法过滤 Entities,甚至不能过滤 Bundle,而只能过滤 EntityManager ?!
我错过了什么 ?我认为这是一个很常见的需求,而且很容易开发。
PS我需要它,因为我有一个与其他软件共享的旧的奇怪数据库,这并不完全是Doctrine想要的,所以如果我不过滤,我会遇到一些错误,或者在最好的情况下会出现很多无用/错误的错误修改。
这是发生的情况(我想这就是我的问题的出现方式,但不是 100% 确定):
revert按钮恢复了它merge按钮)为什么会发生这样的事?现在怎么可能,从进行 PR 的分叉中,它说There isn't anything to compare虽然这些提交不在远程存储库的原始分支上。
最后,我怎样才能恢复这些提交?
编辑:根据要求,这是我的有趣部分git log:
* | | 25f28fb Merge branch 'FooUser-develop' into develop
|\ \ \
| * \ \ 73768b7 Merge branch 'develop' of https://github.com/FooUser/mainRepo into FooUser-develop
| |\ \ \
| | * | | 2e61235 Invert adresses
* | | | | d522031 Merge branch 'develop' of https://github.com/mainUser/mainRepo into develop …Run Code Online (Sandbox Code Playgroud) 我有一个带有一些验证器的实体(不是表格).
所以我使用$validator->validate($entity),但它不验证我的子对象(实体类有一些其他实体类与一些验证器).
有没有"自动"方式来做到这一点,或者我必须为$errorList->addAll($validator->validate($entity));他们每个人做?
自从我迁移到Symfony 2.4后,我收到以下错误消息:
只能在处理请求时才能渲染片段.
它正在发生,因为在某些页面上,我在一些页面中使用Twig渲染一些模板,这些模板由另一个旧框架处理,通过执行$sf2->container->get('twig')->render("MyBundle::my-template.html.twig");.
所以,是的,Symfony 2没有处理这些请求,但我还是想用Twig渲染这些模板!为什么我不能那样做(不再)?以及如何解决这个问题?
这是我在旧项目中执行"启动"SF2的代码:
$loader = require_once __DIR__.'/../../../app/bootstrap.php.cache';
Debug::enable();
require_once __DIR__.'/../../../app/AppKernel.php';
$kernel = new AppKernel('bootstrap', true);
$kernel->loadClassCache();
Request::enableHttpMethodParameterOverride();
$request = Request::createFromGlobals();
$kernel->boot();
$kernel->getContainer()->enterScope('request');
$kernel->getContainer()->set('request', $request, 'request');
$this->container = $kernel->getContainer();
Run Code Online (Sandbox Code Playgroud)
编辑:顺便说一句,它可能与此有关:Symfony 2.4在TWIG中渲染控制器会抛出"渲染片段只能在处理请求时完成".例外.虽然,我不想降级到Symfony 2.3,删除vendor目录并没有解决我的问题.
EDIT²:我发现问题是因为新的RequestStack.
在HttpKernel,handleRaw(Request $request, $type = self::MASTER_REQUEST)通常将请求推送到RequestStack($this->requestStack->push($request);).所以,如果我添加一个公共方法pushRequestStack($request),HttpKernel它的工作原理..但我怎么能正确地做到这一点?我不觉得能得到任何公开的方法,$requestStack从HttpKernel(这样我就可以从外部推请求)..
我不能使用"普通"方法($kernel->handle($request)),因为它会抛出一些例外,例如对于不存在的路由,或者对于已经由PHP启动的会话.
总之,有没有办法在不完全处理请求的情况下"推送"我的/任何请求到requestStack?
无论我做什么,我总是得到一个
Symfony\Component\HttpKernel\Exception\NotFoundHttpException:"找不到[...]的路由"
在$crawler->text(),当我尝试请求外部URL时$crawler = $client->request('GET', 'http://anotherdomain.com');.
我想这样做是因为我正在使用另一个virtualHost来渲染一些使用Symfony 1.2的页面,而另一些使用Symfony 2.3.
我也试过
$client = static::createClient(array(), array('HTTP_HOST' => 'anotherdomain.com'));
$client->followRedirects(true);
Run Code Online (Sandbox Code Playgroud)
但它总是试图在Symfony 2中呈现它.
symfony ×6
request ×2
choicefield ×1
cross-domain ×1
debugging ×1
doctrine-orm ×1
entities ×1
filter ×1
forms ×1
git ×1
git-merge ×1
github ×1
listener ×1
master ×1
pandas ×1
phpunit ×1
pull-request ×1
python ×1
recursion ×1
revert ×1
schema ×1
sql ×1
symfony-2.4 ×1
twig ×1
updating ×1
url ×1
validation ×1
warnings ×1
web-crawler ×1