小编Pet*_*ete的帖子

如何在Silex中获取当前页面名称

我想知道如何获取当前页面名称,基本上"只是"路由中的最后一个参数(即/ news或/ about).我这样做是因为我希望能够突出显示导航中的当前页面.

理想情况下,我想将当前页面名称存储在全局变量中,以便在Twig中我可以将当​​前页面名称与链接进行比较并相应地添加一个类.

我无法弄清楚如何将当前页面名称添加到全局变量.我尝试过使用这样的东西:

$app['twig']->addGlobal('current_page_name', $app['request']->getRequestUri());
Run Code Online (Sandbox Code Playgroud)

在我的app.php文件的顶部,但是"请求范围之外"错误.但我不想在每条路线中都包括这一点.

最好的方法是什么?

symfony twig silex

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

使用Laravel的Eloquent(或Fluent)将一行数据复制到另一行

这是交易.我用两个或多或少的表来设置我的数据库(实际上,我的表格要复杂得多,但这是要点):

表`元素`

  • ID
  • 数据

表`element_drafts`

  • ID
  • element_id
  • 数据

正如您可能从名称中猜到的那样,第二个表包含第一个表中的行草稿行.(不要担心建议更好的方法来做草稿=)我的表比显示的更复杂,并且有一个草稿表是最好的解决方案atm).

我在两个表之间建立了一个关系,这样我就可以做到这样的事情:

// Get all of the elements along with their draft rows
$elements_with_drafts = Element::with('drafts')->all();
Run Code Online (Sandbox Code Playgroud)

我也可以通过这样做只选择有草稿行的元素:

$elements_with_drafts = Element::with('drafts')
    ->whereIn('id', function($query)
    {
        $query->select('element_id')->from('element_drafts');
    })
    ->get();
Run Code Online (Sandbox Code Playgroud)

但是我想做的一件事我无法弄清楚:将草稿值复制到其父元素.

最后,我的目标是通过单个查询将所有element_drafts ['data']值复制到其父元素['data']字段.

我不完全确定这是可能的.是吗?

我的猜测是,它可能会这样做:

$elements_with_drafts = Element::with('drafts')
    ->whereIn('id', function($query)
    {
        $query->select('element_id')->from('element_drafts');
    })
    ->update(array("data" => function($query)
    {
        // Somehow select the draft value?
    });
Run Code Online (Sandbox Code Playgroud)

我觉得我很亲密,但我不太确定如何做我想做的事.有任何想法吗?

注意:显然这可以通过foreach循环相对容易地完成,但我希望解决方案只是一个查询.

fluent laravel eloquent laravel-4

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

如何使用PHPUnit测试调用同一类的其他方法但不返回任何值的方法

如何为调用同一类的其他方法但不返回值的方法编写单元测试?(让我们说PHPUnit.)

例如,假设我有以下类:

class MyClass {

    public function doEverything() {

        $this->doA;
        $this->doB;
        $this->doC;

    }

    public function doA() {
        // do something, return nothing
    }

    public function doB() {
        // do something, return nothing
    }

    public function doC() {
        // do something, return nothing
    }

}
Run Code Online (Sandbox Code Playgroud)

你会怎么测试doEverything()

编辑:

我问这个是因为从我看过的内容看来,几乎所有的方法都应该有自己的专用单元测试.当然,你也有功能和集成测试,但那些目标特定的例程,可以这么说(不是必须在每个方法级别).

但是,如果几乎所有方法都需要自己的单元测试,我认为对所有上述方法进行单元测试将是"最佳实践".是/否?

php testing phpunit unit-testing codeception

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

使 Rails 'field_with_error' 不适用于某些输入

我正在使用一些使用 :checked 样式的 CSS 表单元素,例如。

input:checked + label {
    background-color: green;
}
Run Code Online (Sandbox Code Playgroud)

相应的 HTML(例如,简化的)将是:

<input type="checkbox">
<label>My Checkbox</label>
Run Code Online (Sandbox Code Playgroud)

不幸的是,当 .field_with_errors 发挥作用时, :checked 样式会造成严重破坏,因为它会在两个元素周围创建一个 div,如下所示:

<div class="field_with_errors">
    <input type="checkbox">
</div>
<div class="field_with_errors">
    <label>My Checkbox</label>
</div>
Run Code Online (Sandbox Code Playgroud)

据我所知,鉴于 HTML 结构,不再可能根据是否选中复选框来设置标签样式。

我无法完全删除field_with_errors标签或输入,因为我正在处理的应用程序的遗留方面依赖于它。

所以我想知道是否可以简单地制作它,以便field_with_errors在隐藏元素时不会包裹它们。我对 Ruby/Rails 还不太了解,但我知道(当然)它运行预页面加载。我仍然满怀希望地希望也许我没有在想什么:-D。

任何替代但类似有效的方法也受到欢迎。

ruby-on-rails ruby-on-rails-4

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

如何使用带有silex ServiceProvider的自定义类

我觉得我已经彻底搜索了整个互联网,但似乎无法想象这一个.我正在使用Silex(最新版本),似乎无法弄清楚如何使用Silex的ServiceProvider系统返回一个类的实例供使用.

我知道如何创建基本服务提供商.

我不知道该怎么做才能让这个服务提供商使用自定义类.我已经尝试了我能想到或在网上找到的所有内容.问题的一部分是Silex关于此的文档并不是非常广泛,并且在对它的完成方式(或者看起来如此)进行了相当大的改变之前,已经询问/回答了大多数关于此类问题的问题.答案不是最新的.

所以,简单地说:我想使用Silex的$ app ['myclass']类型系统来访问我的类,这样我就可以执行$ app ['myclass'] - > myMethod()等操作.

我挂了的就是这个,虽然我可以创建服务提供商,但我无法弄清楚如何让服务提供商识别这个类.我已经尝试使用composer auto-load pso-0设置完整的命名空间,并尝试使用MyClass/MyClass类型的东西.

哈哈,基本上,因为文档很少,可能有任何一部分我做错了.

有人会编写一个当前的分步流程来将自定义库/类连接到$ app变量吗?我认为这不仅有助于我,也有助于其他人.谢谢!

php class templating symfony silex

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

从nth-child模式中排除元素

假设我有这些元素:

<li class="class1">content</li>
<li class="class1">content</li>
<li class="class1 class2">content</li>
<li class="class1">content</li>
<li class="class1">content</li> <!-- I want nth-child(4n) to select this-->
<li class="class1">content</li>
<li class="class1">content</li>
<li class="class1">content</li>
Run Code Online (Sandbox Code Playgroud)

我想使用a .class1:nth-child(4n)来选择每个第4个元素,但是如果一个元素有两个class1并且class2我不希望它被包含在"每第四个"计数中 - 我只是希望它被忽略.

我试过了.class1:not(.class2):nth-child(4n),但它似乎没有用.有任何想法吗?

这是一个实验的JSFiddle:http://jsfiddle.net/jWxb6/2/

css css-selectors css3

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

预先提交的Git挂钩可以压缩目录并将其添加到存储库中吗?

我正在使用Wordpress插件进行开发。我的开发目录包含许多特定于开发的内容(例如Grunt文件,Sass文件,git存储库本身等)。

显然,我不想分发包含所有这些开发文件的文件夹。人们下载我的Wordpress插件时不希望有MB的Grunt文件。

但是到目前为止,我的“发布”过程很麻烦:

  1. 提交Git更改
  2. 压缩整个文件夹
  3. 打开zip文件并删除.git文件夹,grunt文件以及所有其他特定于开发的文件
  4. 发行新的邮编

我不知道实现此目标的最佳方法,但是我对Git钩子非常陌生,我有这样的想法:我是否可以设置一个Git钩子,使其仅将所需的生产文件压缩为ZIP文件并存储它与回购?这样,每次提交时,它将自动创建一个新的发行版ZIP。

那可能吗?如果是这样,有人可以指出我正确的方向吗?

哦,我也在Windows(?_ ?;)上。因此,我希望有一种方法可以在Windows上实现。

git wordpress githooks

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

git存档可以包含.git项目所在的目录吗?

git存档可以包含.git项目所在的目录吗?

例如,假设我的目录结构如下:

-- /my-project-dir
----- /.git
----- /css
----- index.html
----- scripts.js
Run Code Online (Sandbox Code Playgroud)

默认情况下,当我执行git存档时,我最终得到一个ZIP文件,如下所示:

-- my-project-dir.zip
----- /css
----- index.html
----- scripts.js
Run Code Online (Sandbox Code Playgroud)

我想知道archive命令是否也可以包含父目录,例如:

-- my-project-dir.zip
----- /my-project-dir
-------- /css
-------- index.html
-------- scripts.js
Run Code Online (Sandbox Code Playgroud)

git git-archive

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

如何将服务器数据传递到React组件

我只是在学习React,虽然我了解许多基础知识,但是有一个概念我还没有见过任何人涵盖:如何获取通过服务器端语言(例如PHP)加载的信息,并在加载时使用它反应视图?

我本来希望我RenderDom在php视图中有电话,例如:

// In the pre-compiled JSX file
var Greeting = React.createClass({
    render: function() {
        <div>
            <h1>Hello, { this.props.username }</h1>
        </div>
    }
});

// In my PHP view
<script type="text/jsx">
    ReactDOM.render( <Greeting username="<?php echo $username; ?>"/>, document.body );
</script>
Run Code Online (Sandbox Code Playgroud)

但这是行不通的。什么都不显示。我认为这是因为text/jsx脚本区域未执行...但是,如果我删除该语法区域,则当然可以。

太...我只是想知道,从数据库中加载数据并将其传递到React组件的典型方法是什么?

php reactjs

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

如何链接到Silex中的PDF文件?

我看了一下,似乎无法弄清楚如何在使用Silex时链接到静态文件.我已经看到了一些关于Symfony的类似问题/答案,但它们涉及YML路由文件,我不与Silex一起使用.

我的情况

我在/ docs文件夹中有一些文件.登录用户可以上传新的pdf文件(因此,我不知道所有文件名将会是什么;它们会不断变化).

我的意图

我需要能够链接到这些PDF文件,以便点击链接某处将打开www.myurl.com/docs/myfile.pdf.

问题

由于silex中的路由系统,它将url视为路由(显然)并抛出Page Not Found错误.

提前感谢您的任何反馈!

silex

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