在包含的脚本中
date('Y-m-d', strtotime('first day of last month'))
Run Code Online (Sandbox Code Playgroud)
在版本5.3.10(localhost)中,我得到了例如'2012-03-01'.
在版本5.2.17(远程主机)中我得到'1969-12-31'.
是否有表达式会返回两个版本的预期结果(例如,'2012-03-01')?
GitHub 已开始发送有关已弃用身份验证的电子邮件,但我还没有找到详细说明auth.json在新制度下作曲家应该是什么样子的资源。
我的要求相对简单 - 使用 composer 更新开发中的 Symfony 应用程序,并偶尔尝试其他存储库。
有了这个,我的原始配置(自动构建)...
{
"github-oauth": {
"github.com": "(a string)"
}
}
Run Code Online (Sandbox Code Playgroud)
...我收到此警告:
...您的个人访问令牌...用作查询参数的一部分以通过 GitHub API 访问端点...请改用 Authorization HTTP 标头...
但是当我尝试使用其他配置时:
{
"http-basic": {
"github.com": {
"username": " my email address",
"password": " my password "
} }
}
Run Code Online (Sandbox Code Playgroud)
我收到另一个警告:
您最近使用 Composer/1.9.1 通过 GitHub API 使用密码访问端点……我们建议改用具有适当范围的个人访问令牌 (PAT) 来访问此端点。
它到底应该是什么样子,为什么我会收到这些弃用警告?
共享FreeBSD主机上以前工作的沙箱现在无法运行composer update或安装内存耗尽错误.在昨天之前,我能够顺利运行php ./composer.phar update.我不相信需要更多的内存.我可以在没有任何问题的情况下在Windows系统上更新项目.内存大小以外的哪些变量会导致内存耗尽错误?
为了测试这个,我将.../vendor和composer.lock文件的内容移动到另一个目录然后运行php ./composer.phar install --prefer-dist.[Composer位于项目目录中,因此我可以在本地更新它,而不是希望主机主机更新它.]上面的命令导致:
% php ./composer.phar install --prefer-dist
Loading composer repositories with package information
Updating dependencies (including require-dev)
PHP Fatal error: Allowed memory size of 1073741824 bytes exhausted (tried to allocate 134217728 bytes) in phar:///home/projectmana/www3.projectmana.org/composer.phar/src/Composer/DependencyResolver/Solver.php on line 220
Fatal error: Allowed memory size of 1073741824 bytes exhausted (tried to allocate 134217728 bytes) in phar:///home/projectmana/www3.projectmana.org/composer.phar/src/Composer/DependencyResolver/Solver.php on line 220
Run Code Online (Sandbox Code Playgroud)
Composer是版本1.20
composer.json使用:
{
"name": "truckee/projectmana",
"license": "MIT",
"type": "project",
"description": "Project MANA administrative application", …Run Code Online (Sandbox Code Playgroud) 在添加ArrayCollection成员的表单的功能测试中,有以下声明:
$ form ['client [members] [1] [fname]'] ='Benny';
使用DOM检查器验证了字段名称.
此行的控制台输出是:
InvalidArgumentException: Unreachable field "members"
G:\Documents\workspace\sym\vendor\symfony\symfony\src\Symfony\Component\DomCrawler\Form.php:459
G:\Documents\workspace\sym\vendor\symfony\symfony\src\Symfony\Component\DomCrawler\Form.php:496
G:\Documents\workspace\sym\vendor\symfony\symfony\src\Symfony\Component\DomCrawler\Form.php:319
G:\Documents\workspace\sym\src\Mana\ClientBundle\Tests\Controller\ClientControllerTest.php:57
Run Code Online (Sandbox Code Playgroud)
应该使用什么方法来测试添加ArrayCollection成员?
Run Code Online (Sandbox Code Playgroud)//link to trigger adding household member form $link = $crawler->selectLink('Add household member')->link(); $crawler = $client->click($link); $form = $crawler->selectButton('Add client')->form(); $form['client[members][1][fname]'] = 'Benny'; $form['client[members][1][dob]'] = "3/12/1999"; $crawler = $client->submit($form); $this->assertTrue($crawler->filter('html:contains("Client View Form")')->count() > 0);
安装Webpack Encore后,一个相对新鲜的Symfony 4.1.7项目会抛出错误
在呈现模板期间抛出异常("无法从Webpack中找到入口点文件:文件".../public/build/entrypoints.json"不存在.")
{{ encore_entry_link_tags('app') }}
启动时模板包含的位置
http://127.0.0.1:8000/
我错过了什么?
$ yarn encore dev
Running webpack ...
DONE Compiled successfully in 1974ms
I 3 files written to public\build
Done in 3.33s.
Run Code Online (Sandbox Code Playgroud)
.../public/build 包含
app.css
app.js
manifest.json
Run Code Online (Sandbox Code Playgroud)
本地Symfony版本:
symfony/webpack-encore-bundle v1.0.0
symfony/webpack-encore-pack v1.0.3
Run Code Online (Sandbox Code Playgroud)
webpack.config.js:
var Encore = require('@symfony/webpack-encore');
Encore
// the project directory where compiled assets will be stored
.setOutputPath('public/build/')
// the public path used by the web server to access the previous directory
.setPublicPath('/build')
.cleanupOutputBeforeBuild()
.enableSourceMaps(!Encore.isProduction())
// uncomment to create hashed …Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,只有管理员用户可以创建并理论上编辑用户.到目前为止,仅使用Symfony安全系统(不需要FOSUserBundle管理 - 不需要复杂性),创建具有不同角色的用户就可以了.完全逃避我的挑战是如何在不知道用户密码的情况下编辑用户.我一直遇到预期的验证错误
密码不能为空
.如何完成编辑?我肯定错过了一些非常基本的东西.
public function editAction($id) {
$em = $this->getDoctrine()->getManager();
$user = $em->getRepository('ManaClientBundle:User')->find($id);
$form = $this->createForm(new UserType(), $user);
return array(
'form' => $form->createView(),
'user' => $user,
'title' => 'Edit user',
);
}
Run Code Online (Sandbox Code Playgroud)
public function updateAction(Request $request, $id) {
$em = $this->getDoctrine()->getManager();
$user = $em->getRepository('ManaClientBundle:User')->find($id);
$originalPassword = $user->getPassword();
$form = $this->createForm(new UserType(), $user);
$form->bind($request);
if ($form->isValid()) {
$plainPassword = $form->get('password')->getData();
if (!empty($plainPassword)) {
//encode the password
$encoder = $this->container->get('security.encoder_factory')->getEncoder($entity); //get encoder for hashing pwd later
$tempPassword = …Run Code Online (Sandbox Code Playgroud) 在尝试定义捆绑之间的一对多关系时,会发生以下情况:
在链配置的名称空间Mana \ SplitBundle \ Entity中找不到类'Mana \ ClientBundle \ Entity \ Member'
我现在看到了矛盾的答案,即这种关系可以而且不能实现。假设它可以(因为在stackoverflow上的其他人似乎已经做到了),除了在AppKernel.php中注册包并在实体中输入注释外,还需要什么配置?在resolve_target_entity_listener没有出现有所作为。
好吧,我知道我在这里没有深度,但这是我在尝试显示Client实体时逐步执行代码时观察到的。
探查器中的错误消息
在Mana \ SplitBundle \ Entity \ Client#members上指定的目标实体'Mana \ ClientBundle \ Entity \ Member'未知或不是实体。
之所以会发生,是因为SchemaValidator评估$cmf->isTransient($assoc['targetEntity'])为true,即Member实体中的targetEntity。PHPdoc注释建议未加载该实体的元数据。如果我正确理解这一点,则意味着未加载有关该关系的注释。但是观察变量值表明注释已被阅读。
我是否完全错过了一些显而易见的事情?还是我在左场太远了?
我已经确认doctrine:mapping:info可以检测到不正确的FQCN。数据装置正确。默认连接和拆分连接使用实体管理器和数据库连接都是正确的。该错误仍然存在,并且对于客户端实体中定义的任何关系(OneToMany或ManyToOne)都可能发生。
doctrine:
dbal:
default_connection: default
connections:
default:
driver: "%database_driver%"
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
mapping_types:
enum: string
split:
driver: "%database_driver2%"
host: "%database_host2%"
port: "%database_port2%"
dbname: "%database_name2%"
user: "%database_user2%"
password: "%database_password2%"
charset: UTF8
mapping_types: …Run Code Online (Sandbox Code Playgroud) 到目前为止,我没有成功实施beberlei DoctrineExtensions.我需要MySQL Year()函数.错误是:
预期已知功能,得到'年'
所以我一定错过了什么.什么?
这是我到目前为止所获得的:
扩展安装在 ..\vendor\beberlei\lib\DoctrineExtensions
use Doctrine\Common\Annotations\AnnotationRegistry;
$loader = require __DIR__.'/../vendor/autoload.php';
$loader->add('DoctrineExtensions', __DIR__.'/../vendor/beberlei/lib/DoctrineExtensions');
// intl
if (!function_exists('intl_get_error_code')) {
require_once __DIR__.'/../vendor/symfony/symfony/src/Symfony/Component/Locale/Resources/stubs/functions.php';
$loader->add('', __DIR__.'/../vendor/symfony/symfony/src/Symfony/Component/Locale/Resources/stubs');
}
AnnotationRegistry::registerLoader(array($loader, 'loadClass'));
return $loader;
Run Code Online (Sandbox Code Playgroud)
class ClientRepository extends EntityRepository {
public function activeStatus($year, $status) {
$em = $this->getEntityManager();
$query = $em
->createQuery('select max(Year(ct.contact_date)) CY,
c.active
from ManaClientBundle:Contacts ct
join ManaClientBundle:Client c on ct.cid = c.id
group by id')
->getResult();
return $em->createQuery("select CY, count(CY) Status from
$query where CY = $year and active = …Run Code Online (Sandbox Code Playgroud) 尝试保持一对多关系时发生错误.特别是,客户可能有多个家庭成员; 给定的家庭成员与一个且仅一个客户相关联.[我是Symfony的新手,因此预计会出现错误!]您的指导感激不尽.
NB下面的Alternate控制器片段通过尝试将家庭表中的客户端ID设置为null来产生完整性约束错误.
namespace Mana\AdminBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
/**
* Mana\AdminBundle\Entity\Clients
*
* @ORM\Table(name="clients")
* @ORM\Entity
*/
class Clients
{
protected $members;
public function __construct()
{
$this->members = new ArrayCollection();
}
public function getMembers()
{
return $this->members;
}
public function setMembers(ArrayCollection $members)
{
$this->members = $members;
}
/**
* @var integer $id
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
* @ORM\OneToMany(targetEntity="Household", mappedBy="clients")
* @ORM\ManyToOne(targetEntity="EthDesc", inversedBy="clients")
* @ORM\JoinColumn(name="eid", referencedColumnName="id")
*/
Run Code Online (Sandbox Code Playgroud)
namespace Mana\AdminBundle\Entity;
use Doctrine\ORM\Mapping …Run Code Online (Sandbox Code Playgroud) 在版本<2.3中,属性
data-prototype="{% filter escape %}{% include 'ManaClientBundle:Member:member_prototype.html.twig' with {'form': form.members.get('prototype')} %}{% endfilter %}"
Run Code Online (Sandbox Code Playgroud)
允许原型显示为一行单元格.当然,在2.3中,这一行会产生错误
对象"Symfony\Component\Form\FormView"的方法"get"不存在
根据UPGRADE-2.1.md,不推荐使用get.它不能被建议的变量替换,因为它会产生类似的错误.我怎样才能(轻松?)像以前一样在2.3中渲染原型?运用
data-prototype="{{ form_widget(form.members.vars.prototype)|e }}"
Run Code Online (Sandbox Code Playgroud)
无论twig的资源:表格如何,无论div或表设置如何,都无法提供有用的解决方案.
<tr id="member-form">
<td><input class="smallform" type="radio" name="household[isHead]" value="__name__"></td>
<td>{{ form_widget(form.include, {'attr': {'class':'smallform'}}) }}</td>
<td>{{ form_widget(form.fname, {'attr': {'class':'smallform'}}) }}</td>
<td>{{ form_widget(form.sname, {'attr': {'class':'smallform'}}) }}</td>
<td>{{ form_widget(form.dob, {'attr': {'class':'smallform'}}) }}</td>
<td>{{ form_widget(form.sex, {'attr': {'class':'smallform'}}) }}</td>
<td>{{ form_widget(form.ethnicity, {'attr': {'class':'smallform'}}) }}</td>
<td><a id="removeTr" class="smallbutton" href="#" onclick="removeTr(this)">Remove</a>
Run Code Online (Sandbox Code Playgroud) 在使用 PHP 8.0.2 的 Windows 10 中,尝试加载 3 个不同版本的 xdebug 均失败,Failed loading Zend extension 'php_xdebug-...尝试的版本如下:
php_xdebug-2.9.8-7.3-vc15-x86_64.dll
php_xdebug-3.0.3-8.0-vs16-x86_64.dll
php_xdebug-3.1.1-8.0-vs16-x86_64.dll
Run Code Online (Sandbox Code Playgroud)
文件名是否被引用都没有区别,包含路径也没有区别C:\\...区别C:/...
我缺少什么?
apache error.log 中的示例错误消息:
PHP Warning: Failed loading Zend extension 'php_xdebug-2.9.8-7.3-vc15-x86_64.dll' (tried: C:\\php\\ext\\php_xdebug-2.9.8-7.3-vc15-x86_64.dll (The specified module could not be found), C:\\php\\ext\\php_php_xdebug-2.9.8-7.3-vc15-x86_64.dll.dll (The specified module could not be found)) in Unknown on line 0
php.ini/xdebug:
[xdebug]
zend_extension="php_xdebug-2.9.8-7.3-vc15-x86_64.dll"
xdebug.mode=debug
xdebug.client_host=localhost
xdebug.client_port=9003
xdebug.idekey="netbeans-xdebug"
Run Code Online (Sandbox Code Playgroud)
阿帕奇是Apache/2.4.46 (Win64) OpenSSL/1.1.1h PHP/8.0.2
Windows 是Windows NT GWB-10 10.0 build 19042 (Windows 10) AMD64 …
php ×9
symfony ×8
doctrine-orm ×3
composer-php ×2
date ×1
github ×1
mysql ×1
persistence ×1
phpunit ×1
security ×1
twig ×1
webpack ×1
xdebug ×1
xdebug-3 ×1