小编Vla*_*ban的帖子

如何在wkhtmltopdf中使用页脚和标题?

我遇到了一种情况,我必须在生成的PDF打印件中使用页脚和标题.CSS解决方案仅适用于第一页.我发现的唯一信息是WKPDF根本不支持,但这可以追溯到2009年,所以可能会有所改变.

有人成功吗?

谢谢.

wkhtmltopdf

48
推荐指数
1
解决办法
5万
查看次数

Vue未定义

我正在尝试使用Vue.js构建一个演示应用程序.我得到的是一个奇怪的错误,Vue没有定义.

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Vue JS Intro</title>
</head>
<body>
    <div id="demo">
        <p>{{message}}</p>
        <input v-model="message">
    </div>

    <script type="JavaScript" src="https://cdnjs.cloudflare.com/ajax/libs/vue/1.0.18/vue.min.js"></script>

    <script>
        var demo = new Vue({
            el: '#demo',
            data: {
                message: 'Hello Vue.js!'
            }
        })
    </script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我在这里想念的是什么?这不是CDN问题,因为我也从官方网站下载了库,使用它并得到了相同的结果

index.html:15未捕获的ReferenceError:未定义Vue

html javascript vue.js

12
推荐指数
2
解决办法
7万
查看次数

SF3在SF3文件夹结构中

我正在考虑一个广告网站,用户可以登录,发布新的列表和搜索现有的列表.我将完全遵循DDD原则,这是我的第一个项目.我之前从未在Symfony做过任何DDD.

以下是我对此的看法.你能否告诉我这是否正确,并建议更好的方法?

我可以看到两个域:用户和列表

搜索/显示/发布功能将存在于清单域中.在用户域中登录/注销.

SF3目录的示例结构是

app/
   ListingBundle/
      src/
         Listing.php
         SearchService.php
         ListingRepositoryInterface.php
         Controller/
            public/
               ListingController.php
            protected/
               ListingController.php
         Resource/
           view/
              public/
                 detail.twig.html
              protected/
                 edit.twig.html

   UserBundle/
      src/
         User.php
         AuthService.php
         UserRepositoryInterface.php
         Controller/
            public/
               UserController.php
            protected/
               UserController.php
         Resource/
           view/
              public/
                 login.twig.html
              protected/
                 dashboard.twig.html

   PersistenceBundle
       src/
          UserRepository.php
          ListingRepository.php
Run Code Online (Sandbox Code Playgroud)

我的主要问题是:

  • 这个结构是否正确?
  • 拥有具有相同名称的单独的受保护和公共控制器是一个好主意吗?
  • 在网站的用户后端部分显示的内容显示用户发布的最新列表?这两个域之间的界限在哪里?
  • PersistenceBundle是一个好主意还是应该在User和Listing包中存在持久性?

php domain-driven-design symfony

9
推荐指数
2
解决办法
7335
查看次数

Doctrine2查询构建器不引用该字符串

以下是我的代码摘录

$column_name = "ipAddress";
$qb = EntityManagerContainer::get()->createQueryBuilder();
$qb->select('u')
    ->from(BlacklistedIps::class, 'u');

if($search_term)
{   
    $clause = $qb->expr()->like("u.".$column_name, "'%$search_term%'");
    $qb->where($clause);
}

$query = $qb->getQuery();

$result = $query->getResult();
Run Code Online (Sandbox Code Playgroud)

它工作得非常好(尽管它对SQL注入是开放的,但这是另一个故事).

我的问题是需要"'%$search_term%'".如果没有这组额外的单引号,查询将失败

未捕获的异常'Doctrine\ORM\Query\QueryException',带有消息'SELECT u FROM Orm\Entity\BlacklistedIps u WHERE u.ipAddress LIKE%123%ORDER BY u.reason desc'in***

我并不完全确定我是以正确的方式做到这一点.因为如果我这样做,那么Doc​​trine2中就会出现一个错误(mssing功能?).当我做

$qb->expr()->like("u.".$column_name, "%$search_term%");
Run Code Online (Sandbox Code Playgroud)

然后我绝对肯定我正在处理一个字符串.当整数或布尔值或浮点数等相互比较时,使用不同的运算符,但绝对不喜欢.LIKE仅在处理字符串时使用,因此在DQL中引用字符串正是唯一可能的 - > like方法用例.

请告诉我,我做错了什么.我一直只使用Doctrine2几天,并对它感到着迷.但是不喜欢字符串没有自动引用给我.

php doctrine-orm

8
推荐指数
1
解决办法
6086
查看次数

强制实现接口的类定义常量

我愿意强制我的类定义一个名为COMMAND的常量.如果php允许从接口覆盖常量看起来像

class RequestInterface
{
    const COMMAND = "no-command-specified";
}

class LoginRequest implements RequestInterface
{
    const COMMAND = "loginuser";
    public $username;
    public $password;
}

$request = new LoginRequest();
$request->username = "user";
$request->password = "blah";
Run Code Online (Sandbox Code Playgroud)

显然这不起作用.我正在寻找一种干净的方式来让我的请求定义COMMAND cosntant.

我一直在考虑以下选项:

  • 接口定义了一个getCommand方法,我的请求类需要实现它并将命令名作为字符串返回.但是每个请求的代码太多了
  • 用抽象类替换接口.它看起来很奇怪,因为通常期望抽象类定义至少一个方法
  • 接口变为抽象类,并定义受保护的变量$ command.它还有一个返回$ this-> command;的getter方法.Children覆盖protected property $命令.我不喜欢将公共VARIABLES(应该是可变的)与受保护的VARIABLE混合的方式,这种VARIABLE实际上不应该是可修改的,因此不应该首先假设它是一个变量.

    class LoginRequest extends BaseRequest
    {
         protected $command = "loginuser";
         public $username;
         public $password;
    }
    
    Run Code Online (Sandbox Code Playgroud)

实现这一目标的最简洁方法是什么?

php oop inheritance interface

7
推荐指数
1
解决办法
2712
查看次数

标记 AWS lambda 函数访问被拒绝

我正在尝试使用 aws cli 来标记 lambda 函数。但是,我不断收到访问决定错误。我什至尝试在 IAM 中授予用户管理员访问权限,但仍然不起作用。我想必须在当前覆盖策略的地方配置其他东西

root@fd9f516869e1:~# aws lambda tag-resource --resource $FUNCTION_ARN --tags CURRENT_COMMIT=${CIRCLE_SHA1}

An error occurred (AccessDeniedException) when calling the TagResource operation: User: <user ARN> is not authorized to perform: lambda:TagResource
Run Code Online (Sandbox Code Playgroud)

附加到用户的策略是

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "<SID>",
            "Effect": "Allow",
            "Action": [
                "tag:*",
                "lambda:ListTags",
                "lambda:TagResource",
                "lambda:UntagResource",
                "lambda:GetFunction",
                "lambda:UpdateFunctionCode"
            ],
            "Resource": [
                "<my lambda ARN>"
            ]
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-cli aws-lambda

6
推荐指数
1
解决办法
5547
查看次数

奇怪的__set()魔术功能

任何人都可以解释一下这种行为的逻辑吗?

考虑以下情况:

class EPPDomain
{
    protected $myField;

    public static function buildEPPDomain($fieldValue)
    {
        $me = new self();
        $me->myField = $fieldValue;
        return $me;
    }

    public function __set($name, $value)
    {
        $this->$name = "prefix_".value;
    }
}

class EPPDomainFactory
{
    public static function buildEPPDomain($fieldValue)
    {
        $me = new EPPDomain();
        $me->myField = $fieldValue;
        return $me;
    }
}
Run Code Online (Sandbox Code Playgroud)

所以

$dmn = EPPDomain::buildEPPDomain("myValue");
echo $dmn->myField;
Run Code Online (Sandbox Code Playgroud)

预期

prefix_myValue
Run Code Online (Sandbox Code Playgroud)

实际

myValue
Run Code Online (Sandbox Code Playgroud)

明显,

$dmn = EPPDomainFactory::buildEPPDomain("myValue");
echo $dmn->myField;
Run Code Online (Sandbox Code Playgroud)

按预期输出工作

prefix_myValue
Run Code Online (Sandbox Code Playgroud)

根据http://www.php.net/manual/en/language.oop5.overloading.php#object.set上的__set描述

将数据写入不可访问的属性时运行__set().

当我在EPPDomain类的静态方法中创建EPPDomain的实例时,所有受保护的属性都应该是不可访问的.因此应调用__set,但不是

我知道它也说

属性重载仅适用于对象上下文.这些魔术方法不会在静态上下文中触发.因此,不应将这些方法声明为静态.从PHP 5.3.0开始,如果其中一个魔术重载方法被声明为静态,则会发出警告.

但我有一个表达式,它只是声明__set方法应该是一个类成员函数,不应该是静态的.就是这样,它似乎与我所面临的情况无关.

这是一个错误或预期的行为?

php

5
推荐指数
1
解决办法
95
查看次数

CSS Flexbox模型的Google Maps高度问题

我有一个简单的布局,身体占据了整个高度减去页脚的高度+标题的高度.这是通过flexbox模型实现的(http://philipwalton.github.io/solved-by-flexbox/demos/sticky-footer/)

<!DOCTYPE html>
<html>
<head>
    <title>Simple Map</title>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
    <meta charset="utf-8">
    <style>
        html, body {
            height: 100%;
            margin: 0;
            padding: 0; /* to avoid scrollbars */
        }
        #wrapper {
            display: flex; /* use the flex model */
            min-height: 100%;
            flex-direction: column; /* learn more: http://philipwalton.github.io/solved-by-flexbox/demos/sticky-footer/ */
        }
        #header {
            background: yellow;
            height: 100px; /* can be variable as well */
        }
        #body {
            flex: 1;
            border: 1px solid orange;
            height: 100%;
        }
        #footer {
            background: lime; …
Run Code Online (Sandbox Code Playgroud)

css google-maps css3 google-maps-api-3 flexbox

5
推荐指数
2
解决办法
5320
查看次数

多个TinyMCE

我最近在开发具有多个TinyMCE的页面时遇到了问题.

<textarea style='width:90%;height:500px;' class='tinymce' name='message' id="mce_editor_0" placeholder='Long Message'>{if isset($message)}{$message}{/if}</textarea>
<textarea style='width:90%;height:200px;' class='tinymce' name='signature' id="mce_editor_1" placeholder='Long Message'></textarea>

$.ajax({
             url: "../action/getEmailTemplate?id="+id+'&type='+type
        }).done(function ( data ) {
            console.log("../action/getEmailTemplate?id="+id+'&type='+type);
            console.log(data);
            if(type=='email'){
                tinyMCE.execCommand('mce_editor_0', 'mceSetContent', false, data);
            }
            if(type=='sig'){
                tinyMCE.execCommand('mce_editor_1', 'mceSetContent', false, data);
            }
        });
Run Code Online (Sandbox Code Playgroud)

这不起作用.我是否误解了tinyMCE.execCommand背后的逻辑?

javascript jquery tinymce rte

2
推荐指数
1
解决办法
1347
查看次数

将对象转换为数组 - 奇怪的行为

我正在将一个对象转换为数组,之后我无法通过键访问生成的数组.

这是代码

print_r($new);
$new = (array)$new;
echo $new['EPPContactemail'];

foreach($new as $attr=>$value)
{
    echo "$attr => $value \n";
}
Run Code Online (Sandbox Code Playgroud)

输出是

EPPContact Object
(
    [id:EPPContact:private] => 6553377C74FC9899
    [roid:EPPContact:private] => 50085436-UK
    [status:EPPContact:private] => ok
    [voice:EPPContact:private] => +44.554545454
    [email:EPPContact:private] => some@email.com
    [fax:EPPContact:private] => 
    [clID:EPPContact:private] => TSOHOST
    [crID:EPPContact:private] => EPP-TSOHOST
    [crDate:EPPContact:private] => 2013-07-17T09:53:41
)

Notice: Undefined index: EPPContactemail in /home/parvhraban/domains/src/local_libs/EPP/Builder/Contact/Update.php on line 9
EPPContactid => 6553377C74FC9899
EPPContactroid => 50085436-UK
EPPContactstatus => ok
EPPContactvoice => +44.554545454
EPPContactemail => some@email.com
EPPContactfax => 
EPPContactclID => TSOHOST
EPPContactcrID => …
Run Code Online (Sandbox Code Playgroud)

php arrays casting

2
推荐指数
1
解决办法
1311
查看次数

抑制stream_socket_client警告

我有一行代码

$result = stream_socket_client($target, $errno, $errstr, $timeout, STREAM_CLIENT_CONNECT);
Run Code Online (Sandbox Code Playgroud)

如果连接不成功,则会发出警告

WARNING: stream_socket_client(): Failed to enable crypto
Run Code Online (Sandbox Code Playgroud)

我需要压制警告.添加@以使线条看起来

$result = @stream_socket_client($target, $errno, $errstr, $timeout, STREAM_CLIENT_CONNECT);
Run Code Online (Sandbox Code Playgroud)

没有帮助.PHP似乎忽略了@

我在这里错过了什么?

php error-handling

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