标签: behavior

cakephp行为afterFind没有调用相关模型

我正在使用afterFind函数来修改find​​函数中的数据.它工作正常.如果我将afterFind函数移动到一个行为(在插件中)它仍然有效,但仅当感兴趣的模型是主要模型时,即当模型属于另一个模型时不调用它.这有什么办法吗?我正在使用蛋糕1.3.4.这是行为的简化版本:

class ChemicalStructureBehavior extends ModelBehavior {
    function afterFind(&$model, $results, $primary) {
        foreach ($results as &$unit) {
            // format chemical formula (with subscripts)
            $unit[$model->alias]['chemical_formula_formatted'] = preg_replace('/([0-9]+)/i', '<sub>$1</sub>', $unit[$model->alias]['chemical_formula']);
        }

        return $results;
    }
}
Run Code Online (Sandbox Code Playgroud)

cakephp behavior callback cakephp-1.3

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

CSS/HTML:禁用链接"悬停"文本

您知道当您将鼠标悬停在链接上时,在大多数浏览器中,它会显示左下角(也称为chrome)或状态栏中的链接?我怎么能禁用它?

css behavior hyperlink css3

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

CakePHP:使用多级可包含行为

我已经花了一些时间尝试在CakePHP中使用Containable Behavior,但我无法让它像我预期的那样工作.

我的应用程序是不同的,但为了简化,我将把这个例子.假设我有一个包含线程和活动的论坛,可以对活动进行评级.一般关系是:

论坛:hasMany [Thread]
主题:belongsTo [论坛],hasMany [活动]
活动:belongsTo [主题],hasMany [评分]
评分:belongsTo [活动]

我想要实现的是,使用find方法,获得在某个论坛上执行的所有评级.我认为应该做的是以下内容:

 $this->Rating->find('count', array(
    'contain' => array(
        'Activity' => array(
            'Thread'
        )
    ),
    'conditions' => array(
        'Thread.forum_id' => 1
    )
));
Run Code Online (Sandbox Code Playgroud)

但结果查询是:

SELECT COUNT(*) AS `count` FROM `ratings` AS `Rating` LEFT JOIN `activities` AS `Activity` ON (`Rating`.`activity_id` = `Activity`.`id`) WHERE `Thread`.`forum_id` = 1;
Run Code Online (Sandbox Code Playgroud)

我使用'join'选项完成了这个,但它更复杂,我必须在很多情况下使用这种动作.

所有用例相关的文件可以在这里找到:http://dl.dropbox.com/u/3285746/StackOverflow-ContainableBehavior.rar

谢谢

更新23/11/2011

在调查框架后,感谢Moz Morris和api55的答案,我找到了问题的根源.

基本的问题是,正如我所理解的CakePHP,我以为它每次都在使用连接进行查询.它不会这样做的事情,它将获得我正在寻找的结果的实际操作将是这样的:

SELECT * FROM Rating JOIN Activity...
SELECT * FROM Activity JOIN Thread...
SELECT * FROM Activity JOIN …
Run Code Online (Sandbox Code Playgroud)

php cakephp behavior

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

PyCharm:如何运行behave.exe?

我想在我的程序中使用behave lib.我在行为教程中编写代码.但是,当我"运行"我的教程项目时,我在PyCharm-console中看到:

C:\Python27\virtualenv\Scripts\python.exe "C:/Program Files (x86)/JetBrains/PyCharmProjects/tutorial/steps/tutorial.py"
Process finished with exit code 0
Run Code Online (Sandbox Code Playgroud)

我想我必须使用behave.exe来运行我的项目:

C:\Python27\virtualenv\Scripts\behave.exe
Run Code Online (Sandbox Code Playgroud)

怎么弄?

python behavior pycharm

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

移动IOS谷歌Chrome地址栏的行为

我花了很多时间尝试jquery/javscript"修复"来实现这一点.自上次更新Chrome Mobile for IOS以来,浏览器的地址栏表现不同.我相信你们都知道我在说什么:你向下滚动你的页面,栏子隐藏起来,但是一旦你向上滚动,就会出现.是的,这是一个很好的用户体验,我可以说.

问题是我的网络应用程序(标题)上面有固定元素,每次向上滚动时,地址栏都会覆盖我的固定元素.

我查找了其他网络应用程序(twitter,gmail),他们似乎找到了避免这种情况的方法.我想读一下你如何实现它的想法.没有必要告诉我不要使用固定元素.

所以我的问题是:有没有办法避免这种情况?你对这种情况有什么看法?

例如:https://mobile.twitter.com/EmWatson(最好在iphone上看到)

仅供参考:我使用Jquery移动框架作为我的网络应用程序.

谢谢.

browser google-chrome behavior ios jquery-mobile

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

如何模拟CakePHP行为进行单元测试

我刚开始在CakePHP进行单元测试(耶!)并遇到了以下挑战.希望有人可以帮助我:-)

情况

我的模型使用行为在本地保存后将更改发送到API.我想假装在测试期间对API进行的所有调用(这些将单独测试)以节省API服务器的负载,更重要的是,实际上不保存更改:-)

我正在使用CakePHP 2.4.1.

我试过的

  • 阅读文档.该手册显示了如何为组件和助手执行此操作,但不为行为执行此操作.
  • 谷歌.我发现了什么:

该文章的代码如下:

$provider = $this->getMock('OurProvider', array('getInfo'));
$provider->expects($this->any())
    ->method('getInfo')
    ->will($this->returnValue('200'));
Run Code Online (Sandbox Code Playgroud)

这可能是错误的方向,但我认为这可能是一个良好的开端.

我想要的是

有效地:一段代码,用于演示如何在CakePHP模型中模拟行为以进行单元测试.

也许这个问题会导致添加CakePHP手册作为额外的奖励,因为我觉得它在那里缺失.

在此先感谢您的努力!

更新(2013-11-07)

我发现了这个相关的问题,应该回答这个问题(部分).无需模拟API,而是可以创建模型将使用的行为测试.

我想弄清楚BehaviorTest应该是什么样子.

phpunit unit-testing cakephp behavior mocking

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

如何修改TreeTableView的单击行为

我想修改它的点击行为TreeTableView,但老实说,我不确定这样做的预期方式是什么样的,或者它是否可以以任何方式改变.

大多数用户抱怨目前的行为不一致.有时单击一个单元格已经折叠/展开了treeitem,有时需要双击.这与编辑模式的初始化一起可能是一种痛苦.所以我很乐意自己处理点击行为.

我能够将行为缩小到TreeTableCellBehavior类:

@Override
protected void handleClicks(MouseButton button, int clickCount, boolean isAlreadySelected) {
        // handle editing, which only occurs with the primary mouse button
        TreeItem<S> treeItem = getControl().getTreeTableRow().getTreeItem();
        if (button == MouseButton.PRIMARY) {
            if (clickCount == 1 && isAlreadySelected) {
                edit(getControl());
            } else if (clickCount == 1) {
                // cancel editing
                edit(null);
            } else if (clickCount == 2 && treeItem.isLeaf()) {
                // attempt to edit
                edit(getControl());
            } else if (clickCount % 2 == 0) {
                // …
Run Code Online (Sandbox Code Playgroud)

java javafx behavior mouseevent treetableview

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

PHP特征的UML表示

我正在使用Symfony2/Doctrine创建项目并尝试实现特征.到目前为止,小试用没有问题,但我通常在复杂项目之前进行UML类和序列图.

什么是用于符号化PHP特征的UML设计对象,就我所知的行为而言可以看作是什么?有没有干净的方法呢?

非常感谢你的回答 !

萨科

php uml behavior traits symfony

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

如何在显示小吃栏时推送现有视图?

这是我尝试在snackbar可见时向上推"NEXT"按钮:

如您所见,它无法按计划运行.看起来似乎textview被推到了后面RelativeLayout然后在snackbar消失时重新出现.相反,我想要的是textview出现向上推(因此它在上方snackbar),然后在snackbar消失时再回来.我还创建了一个小的github repo来证明这一点:

https://github.com/Winghin2517/TestFabMotion

这是CoordinatorLayout.Behavior我用于"NEXT"隐藏自己.当snackbar出现时,当它被推高时,行为取自FAB行为:

public class FloatingActionButtonBehavior extends CoordinatorLayout.Behavior<TextView> {

    public FloatingActionButtonBehavior(Context context, AttributeSet attrs) {
    }

    @Override
    public boolean layoutDependsOn(CoordinatorLayout parent, TextView child, View dependency) {

        return dependency instanceof Snackbar.SnackbarLayout;
    }

    @Override
    public boolean onDependentViewChanged(CoordinatorLayout parent, TextView child, View dependency) {

        float translationY = Math.min(0, dependency.getTranslationY() - dependency.getHeight());
        child.setTranslationY(translationY);
        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

我用这个xml试过这个:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent" …
Run Code Online (Sandbox Code Playgroud)

android behavior android-snackbar android-coordinatorlayout

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

如何更改网站上的滚动行为(例如速度、加速度)?

网站上修改后的滚动行为是如何制作的?我想完成加速滚动行为,如您在示例中所见。所以你以一定的速度滚动,当你放手后,页面会自动滚动一点,减慢并停止。

不幸的是,我绝对没有为您提供代码的基础,我希望您仍然可以帮助我。也许你可以推荐我一些js插件?

https://p2mv.studio/case/sony-music-france

javascript scroll behavior motion parallax

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