在我的ajax响应中,Cache-Control Header显示在标记中.
HTTP/1.0 200 OK缓存控制:无缓存日期:2012年10月11日星期四09:00:59 GMT
我希望标题位于标题中而不是标记中.
这是我的控制器动作摘录:
...
$template = $this->render('list.html.twig', array(
'data' => $data
));
return new Response($template);
...
Run Code Online (Sandbox Code Playgroud)
为什么这样,我怎么能让它消失?
我在设置中运行官方Redis图像https://hub.docker.com/_/redis/docker-compose.
myredis:
image: redis
Run Code Online (Sandbox Code Playgroud)
如何redis-cli在该图像上使用docker-compose 运行?
我尝试了以下,但它没有连接:
docker-compose run myredis redis-cli
> Could not connect to Redis at 127.0.0.1:6379: Connection refuse
Run Code Online (Sandbox Code Playgroud)
图像的文档说我应该运行:
docker run -it --rm \
--link some-redis:redis \
redis \
sh -c 'exec redis-cli -h "$REDIS_PORT_6379_TCP_ADDR" -p "$REDIS_PORT_6379_TCP_PORT"'
Run Code Online (Sandbox Code Playgroud)
这如何转化为docker-compose run?
我在Twig扩展中有一个slugify方法,我想在某些情况下在控制器中使用,fe有重定向.
有一个简单的方法吗?
我如何从控制器中的Twig Extensions访问功能?
或者我是否必须将slugify方法作为帮助才能在代码和树枝中使用它?
我将 PHP8、symfony5 和doctrine2 与 phpstan 一起使用并收到以下错误:
Property App\Entity\User::$id is never written, only read.
Run Code Online (Sandbox Code Playgroud)
代码:
<?php
namespace App\Entity;
use App\Repository\UserRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
use Symfony\Component\Security\Core\User\UserInterface;
/**
* @ORM\Table(name="`user`")
* @ORM\Entity(repositoryClass=UserRepository::class)
* @UniqueEntity(fields={"email"}, message="There is already an account with this email")
*/
class User implements UserInterface, PasswordAuthenticatedUserInterface
{
public const ROLE_USER = 'ROLE_USER';
public const ROLE_ADMIN = 'ROLE_ADMIN';
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=180, unique=true) …Run Code Online (Sandbox Code Playgroud) 我有一个容器,其中nodejs和pm2作为启动命令,在OpenShift上我在启动时遇到此错误:
错误:EACCES:权限被拒绝,mkdir'/.pm2'
我在马拉松主机上尝试过相同的图像,效果很好.
我是否需要使用UserIds更改内容?
Dockerfile:
FROM node:7.4-alpine
RUN npm install --global yarn pm2
RUN mkdir /src
COPY . /src
WORKDIR /src
RUN yarn install --production
EXPOSE 8100
CMD ["pm2-docker", "start", "--auto-exit", "--env", "production", "process.yml"]
Run Code Online (Sandbox Code Playgroud)
更新
节点映像已创建具有UID 1000的新用户"节点",以便不以root身份运行映像.
我还尝试修复权限并将用户"node"添加到根组.
进一步我告诉pm2它应该与ENV var一起使用哪个目录:
PM2_HOME = /家庭/节点/应用/ .pm2
但我仍然得到错误:
Error: EACCES: permission denied, mkdir '/home/node/app/.pm2'
Run Code Online (Sandbox Code Playgroud)
更新了Dockerfile:
FROM node:7.4-alpine
RUN npm install --global yarn pm2
RUN adduser node root
COPY . /home/node/app
WORKDIR /home/node/app
RUN chmod -R 755 /home/node/app
RUN chown -R node:node /home/node/app
RUN …Run Code Online (Sandbox Code Playgroud) 我想克隆symfony-standard-edition创建项目调用,但有一些自定义要求.
所以我不需要Swiftmailer或Doctrine ORM但是想拥有PaginatorBundle.
我试图从标准版复制和编辑composer.json并做了一个:
composer.phar install
Run Code Online (Sandbox Code Playgroud)
但这只是安装了供应商目录,而不是像app文件夹等那样安装.
那我该怎么办:
composer.phar create-project symfony/framework-standard-edition myproject
Run Code Online (Sandbox Code Playgroud)
用我编辑过的composer.json?
如何在Symfony2中覆盖单个路由?
我有一个附带bundle_routing.yml文件的包.
在扩展此父包的包中,我也有路由文件:
请注意,文件名称不同. routing.xml
在此路由文件中,我喜欢覆盖单个父路由.
我试着简单地重新声明它并改变模式.
但它没有应用.
父:
MyParentBundle_detailpage:
pattern: /detail
defaults: { _controller: "MyParentBundle:Item:detail" }
Run Code Online (Sandbox Code Playgroud)
儿童:
<route id="MyParentBundle_detailpage" pattern="/itemDetails">
<default key="_controller">MyParentBundle:Item:detail</default>
</route>
Run Code Online (Sandbox Code Playgroud) 我有一个带有docker-compose的docker的symfony设置,除非我运行缓存时运行良好:从控制台清除,webserver无法访问文件.
我可以通过取消注释umask(0000)来规避权限问题; 在控制台和web/app_dev.php但我想按照建议运行symfony.
我做的是旋转容器docker-compose up
然后我进入容器.容器包含apache,php和通过数据卷的代码.
docker exec -i -t apache_1 /bin/bash
Run Code Online (Sandbox Code Playgroud)
显然我以root身份登录然后运行时
app/console cache:clear
Run Code Online (Sandbox Code Playgroud)
缓存中的所有文件都属于root用户.www-data as webserver用户现在无法再访问文件了.
我也可以通过以www-data登录然后缓存生成的文件来避免这种情况:clear属于www-data,webserver可以访问它们.
docker exec -u www-data -i -t apache_1 /bin/bash
Run Code Online (Sandbox Code Playgroud)
但这有一个缺点,我不会在bash,但在/ usr/sbin/nologin,并没有像bash_history等东西.
搜索我发现这是解决许可问题的Dockerfile的一部分,但它对我没有影响.
RUN usermod -u 1000 www-data
Run Code Online (Sandbox Code Playgroud)
如果我理解正确,这将用户1000切换到www-data,但是当我登录到容器时我是根,这不起作用,我假设.
所以当我登录容器时为什么我会root,这个usermod如何工作呢?
docker-compose.yml:
proxy:
image: jwilder/nginx-proxy:latest
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
ports:
- "80:80"
elastic:
build: docker/elasticsearch
ports:
- "9200:9200"
volumes:
- data/elasticsearch:/usr/local/elasticsearch/data
apache:
build: docker/apachephp
environment:
- VIRTUAL_HOST=myapp.dev
volumes:
- …Run Code Online (Sandbox Code Playgroud) 我想模拟来自文件的XML的\ SoapClient的响应。
正如SoapClient从文件返回一样,我如何创建stdClass对象。
客户端已经包装了SoapClient,因此可以轻松模拟响应。
我的模拟是这样的:
$soapClient->expects($this->once())
->method('call')
->will(
$this->returnValue(
simplexml_load_string(
file_get_contents(__DIR__ . '/../../../Resources/file.xml')
)
)
);
Run Code Online (Sandbox Code Playgroud)
但这将返回SimpleXml而不是stdClass。
更新:
建议的json_encode / json_decode hack似乎无法处理属性,因为SoapClient返回它们:
SoapClient:
object(stdClass)[4571]
public 'Lang' => string 'de' (length=2)
public 'Success' => boolean true
Run Code Online (Sandbox Code Playgroud)
哈克:
object(stdClass)#27 (3) {
["@attributes"]=>
object(stdClass)#30 (2) {
["Lang"]=>
string(2) "de"
["Success"]=>
string(4) "true"
Run Code Online (Sandbox Code Playgroud) 我必须将一组函数传递给node.js 的async.js模块.
从文档的正常方式是:
async.parallel([
function(callback){
setTimeout(function(){
callback(null, 'one');
}, 200);
},
function(callback){
setTimeout(function(){
callback(null, 'two');
}, 100);
},
],
// optional callback
function(err, results){
});
Run Code Online (Sandbox Code Playgroud)
我这样试过:
for(var i = 0; i < jsonData.length; i++)
{
...
o.url = serviceurl;
o.title = jsonData[i];
var ff = function(callback){
obj.loadService(o.title,o.url,callback);
}
callItems.push(ff(function(){return true;}));
}
async.parallel(
callItems,
// optional callback
function(err, results){
console.log('all calls called without any errors');
});
Run Code Online (Sandbox Code Playgroud)
贯穿但主要的回调没有被调用.
所以我不能说所有并行呼叫都已完成.
我在这里失踪了什么?