小编Phi*_*hil的帖子

Symfony2中依赖注入的最佳实践

在持久化实体之前,我需要在我的数据库的另一个表中复制和格式化一些数据.我希望此任务作为服务执行.所以我在config.yml中描述了这个服务

services:
my_service:
    class: Acme\Bundle\AcmeBundle\DependencyInjections\MyService
    arguments: 
      entityManager: "@doctrine.orm.entity_manager"
Run Code Online (Sandbox Code Playgroud)

我想知道拨打这项服务的最佳方式.我能弄清楚的唯一方法是来自控制器:

$entity = new Entity($this->get('my_service'));
Run Code Online (Sandbox Code Playgroud)

这是最好的方法吗?

php dependency-injection symfony

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

带有条件的MySQL UNION查询

我有2个列的节日和活动,比如

id  |   name     | modified_date
-----------------------------------
12  | fest 1     |  2012-03-14 17:45:40
13  | fest 2     |  2012-03-14 17:45:40
15  | fest 4     |  2012-03-14 17:45:40
11  | fest 5     |  2012-03-14 17:45:40
Run Code Online (Sandbox Code Playgroud)

事件

id  |   name     | modified_date
-----------------------------------
14  | envt 1     |  2012-03-14 17:45:40
15  | envt 2     |  2012-03-14 17:45:40
16  | envt 4     |  2012-03-14 17:45:40
17  | envt 5     |  2012-03-14 17:45:40
Run Code Online (Sandbox Code Playgroud)

我的应用程序中有一个页面显示最近更新,通过单击每个列表,它将重定向到相应的事件或节日.

为此,我有以下查询

select id,name,modified_date from events
UNION
select id,name,modified_date …
Run Code Online (Sandbox Code Playgroud)

php mysql mysql-management

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

强制php查看Document Root

所以我正在搞乱twitter api,我希望将这个文件包含在每个页面的页脚中.页脚通过phps require_once函数加载.问题是我无法使用完整的URL,因为url文件acsess因为显而易见的原因被关闭.所以我试着用

require_once $_SERVER['DOCUMENT_ROOT']('/lib/twitter/base.php');
Run Code Online (Sandbox Code Playgroud)

但那失败了.我做错了什么或者我怎样才能做得更好?

php require-once

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

使用 array_fill 创建对象数组时,如何使每个对象都是唯一的?

我正在尝试在 Yii2 中创建一个对象数组。但是,问题在于数组中的对象完全没有区别。这是我正在尝试的:

$array1 = array(new Object, new Object, new Object);
$array2 = array_fill(0, 2, new Object);
Run Code Online (Sandbox Code Playgroud)

乍一看,它们看起来相同,但输出却不同。

$array1

[
    0 => frontend\models\Object#1
    (
        [yii\db\BaseActiveRecord:_attributes] => []
        [yii\db\BaseActiveRecord:_oldAttributes] => null
        [yii\db\BaseActiveRecord:_related] => []
        [yii\base\Model:_errors] => null
        [yii\base\Model:_validators] => null
        [yii\base\Model:_scenario] => 'default'
        [yii\base\Component:_events] => []
        [yii\base\Component:_behaviors] => []
    )
    1 => frontend\models\Object#2
    (
        [yii\db\BaseActiveRecord:_attributes] => []
        [yii\db\BaseActiveRecord:_oldAttributes] => null
        [yii\db\BaseActiveRecord:_related] => []
        [yii\base\Model:_errors] => null
        [yii\base\Model:_validators] => null
        [yii\base\Model:_scenario] => 'default'
        [yii\base\Component:_events] => []
        [yii\base\Component:_behaviors] => []
    )
    2 => …
Run Code Online (Sandbox Code Playgroud)

php arrays object

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

Mysql - PDO错误 - 目录名称无效:1046未选择数据库

我有PDO的问题,我看不到他来的地方.我无法质疑我的MySQL数据库.只是为了测试我使用了下面的代码(之前配置的连接参数非常糟糕:

try {
    $dbh= new PDO('mysql:host=serverName;dbname=Mydatabase','user','password');
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (Exception $e) {
    die('Erreur : ' . $e->getMessage());
}

var_dump($dbh);    // gives : object(PDO)#1 (0) { }

$res=$dbh->query('SELECT * FROM table');
Run Code Online (Sandbox Code Playgroud)

与MySQL正确连接,但在查询后我收到此错误:

致命错误:未捕获异常'PDOException',消息'SQLSTATE [3D000]:无效的目录名称:1046未选择数据库'在/home/outout/public_html/file.php:16堆栈跟踪:#0/home/outout/public_html/file.php(16):PDO-> query('select*from t ...')#1 {main}在第16行的/home/outout/public_html/file.php中抛出.

该代码适用于本地计算机,但只要我将其置于联机状态(cPanel),它就会向我显示此错误.我是否必须在.htaccess中配置PDO?

我绝对不明白问题出在哪里.有人会有想法吗?

php mysql pdo cpanel

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

angularjs指令 - 获取元素绑定的文本内容

如何根据角度js指令获得绑定的值restrict: 'A'

<span directiverestrict> {{binding}} </span>
Run Code Online (Sandbox Code Playgroud)

我尝试使用elem[0].innerText但它返回精确的绑定'{{binding}}'而不是绑定的值

.directive('directiverestrict',function() {
    return {
        restrict:'A',
        link: function(scope, elem, attr) {
            // I want to get the value of the binding enclosed in the elements directive without ngModels
            console.log(elem[0].textContent) //----> returns '{{binding}}'
        }
    };
});
Run Code Online (Sandbox Code Playgroud)

angularjs

4
推荐指数
2
解决办法
5549
查看次数

我应该以角度模拟所有外部服务吗?

我目前正在开始进行角度单元测试.作为我想要的第一个控制器看起来像这样,我感到困惑.

angular.module('sgmPaperApp')
  .controller('AccountCtrl', function ($mdToast, user, $firebaseArray, Ref) {
var vm = this;
vm.data = user;
vm.save = saveUser;
vm.comments = $firebaseArray(Ref.child('comments').orderByChild('person').equalTo(user.$id));


function saveUser() {
  vm.data.$save().then(function () {
    $mdToast.showSimple('Data saved');
  });
}
});
Run Code Online (Sandbox Code Playgroud)

我应该真的模仿我使用的所有外部服务吗?毕竟那个控制器不是很多,那么外部服务和嘲笑firebaseArray可能很困难.

感谢您的建议并帮助我开始测试

unit-testing angularjs angularfire

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

$ GET / $ POST中的“ + having +”使服务器返回403 Forbidden

我的一位客户有一个PHP脚本,该脚本一直在莫名其妙地崩溃。经过数小时的研究,我确定您是否向任何PHP脚本发送了一个变量(通过GET或POST),该变量包含“具有t”,或转义为URL“ + having + t”,则该脚本崩溃并返回“ 403”禁止的错误”。为了测试它,我制作了一个包含全部内容的示例脚本:

<?php echo "works";
Run Code Online (Sandbox Code Playgroud)

我在这里直播(临时):http : //primecarerefer.com/test/test.php

现在,如果您尝试发送一些数据,例如:http : //primecarerefer.com/test/test.php?x=+having+x

它失败。最后一个字母可以是任何字母,并且仍然会崩溃,但是更改任何其他字母会使脚本加载正常。是什么原因导致的?如何解决?如果有人想尝试不同的组合,此链接现在处于活动状态。

PS-我发现,如果我连续多次收到403错误,则服务器将阻止我15分钟。

apache http-status-code-403

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

尝试 npm install -g @aws-amplify/cli 时出错

对此,我尝试从命令行安装 aws amplify,但它不断向我抛出错误消息:我尝试了 sudo,尝试了安全路径但无济于事。我是节点新手,不了解依赖关系等,并且不确定我做错了什么!

npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR! 
npm ERR! Found: graphql@14.7.0
npm ERR! node_modules/@aws-amplify/cli/node_modules/graphql
npm ERR!   graphql@"^14.5.8" from @aws-amplify/amplify-category-api@1.1.10
npm ERR!   node_modules/@aws-amplify/cli/node_modules/@aws-amplify/amplify-category-api
npm ERR!     @aws-amplify/amplify-category-api@"1.1.10" from @aws-amplify/cli@7.6.8
npm ERR!     node_modules/@aws-amplify/cli
npm ERR!       @aws-amplify/cli@"*" from the root project
npm ERR!     @aws-amplify/amplify-category-api@"1.1.10" from amplify-container-hosting@2.4.10
npm ERR!     node_modules/@aws-amplify/cli/node_modules/amplify-container-hosting
npm ERR!       amplify-container-hosting@"2.4.10" from @aws-amplify/cli@7.6.8
npm ERR!       node_modules/@aws-amplify/cli
npm ERR!         @aws-amplify/cli@"*" from the root project
npm ERR!   graphql@"^14.5.8" from @aws-amplify/graphql-auth-transformer@0.5.7
npm ERR!   node_modules/@aws-amplify/cli/node_modules/@aws-amplify/graphql-auth-transformer
npm …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services node.js npm aws-amplify aws-amplify-cli

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

Whatsapp Cloud API 上传媒体文件错误

目前我正在尝试围绕 Whatsapp Cloud API 制作一个薄包装器。我目前面临的问题之一是上传媒体文件无法正常工作。

查看上传文件的文档,似乎它需要将multipart/form-data有效负载发送到端点。

这是我当前的实现

import FormData from 'form-data';
import fs from 'fs';
import axios from 'axios';

const formData = new FormData();

formData.append('file', fs.createReadStream('path/to/my/file.jpg'));
formData.append('messaging_product', 'whatsapp');
formData.append('type', 'image/jpeg');

await axios.post('https://graph.facebook.com/v14.0/PHONE_NO_ID/media', formData, {
  headers: { 'Authorization': ACCESS_TOKEN }
});
Run Code Online (Sandbox Code Playgroud)

看看它返回的错误,似乎我在某种程度上丢失了该messaging_product字段,即使我已将其正确添加到 formData 中。

{
  "error": {
    "message": "(#100) The parameter messaging_product is required.",
    "type": "OAuthException",
    "code": 100,
    "fbtrace_id": "FBTRACE_ID"
  }
}
Run Code Online (Sandbox Code Playgroud)

Postman集合用于上传媒体文件,所以我认为fileformData 的字段是问题所在。是fs.createReadStream在文件上相当于Postman处理文件上传的方式

编辑:问题已经解决,问题不是添加到 formData 生成的标题中,感谢下面的菲尔!

javascript form-data node.js whatsapp axios

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