小编And*_*rew的帖子

如何开始测试Zend Framework模型?

如何在Zend Framework 1.8+应用程序中开始测试我的模型?

假设我已将我的应用程序设置为开始测试.我已经测试了一个控制器,所以我知道它有效.我有我的所有控制器扩展我的ControllerTestCase.php文件:

<?php
require_once 'Zend/Application.php';
require_once 'Zend/Test/PHPUnit/ControllerTestCase.php';

abstract class ControllerTestCase extends Zend_Test_PHPUnit_ControllerTestCase
{
    public $application;

    public function setUp()
    {
        $this->application = new Zend_Application(
            APPLICATION_ENV,
            APPLICATION_PATH . '/configs/application.ini'
        );

        $this->bootstrap = array($this, 'appBootstrap');
        parent::setUp();
    }

    public function appBootstrap()
    {
        $this->application->bootstrap();
    }

    public function tearDown()
    {
        Zend_Controller_Front::getInstance()->resetInstance();

        $this->resetRequest();
        $this->resetResponse();

        $this->request->setPost(array());
        $this->request->setQuery(array());
        parent::tearDown();
    }
}
Run Code Online (Sandbox Code Playgroud)

但现在我想开始测试我的模型.似乎我ModelTestCase.php不会延伸Zend_Test_PHPUnit_ControllerTestCase而是延伸Zend_Test_PHPUnit_ModelTestCase,但是我知道不存在这样的类.如何开始测试我的Zend Framework模型?

zend-framework zend-test

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

斜线在SQL查询中的含义是什么?

斜杠字符在此查询中的含义是什么?这与MySql数据库一起使用.

SELECT Channel, COUNT(Channel) AS Total, COUNT(Channel) / (SELECT COUNT(*) FROM UserClicks WHERE (Date > '2009-12-1' AND Date < '2010-1-1') AND RoleType='member' ) AS Percent FROM UserClicks WHERE (Date > '2009-12-1' AND Date < '2010-1-1') AND RoleType='member' GROUP BY Channel ORDER BY Total DESC
Run Code Online (Sandbox Code Playgroud)

更新:对不起,愚蠢的问题!= P

mysql sql

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

Javascript regex:如何从字符串中提取“id”?

我有这个字符串: comment_1234

我想1234从字符串中提取。我怎样才能做到这一点?

更新:我无法得到您的任何答案……我的代码有问题吗?警报永远不会被调用:

var nameValue = dojo.query('#Comments .Comment:last-child > a[name]').attr('name');
alert('name value: ' + nameValue); // comment_1234
var commentId = nameValue.split("_")[1];
// var commentId = nameValue.match(/\d+/)[0];
// var commentId = nameValue.match(/^comment_(\d+)/)[1];
alert('comment id: ' + commentId); //never gets called. Why?
Run Code Online (Sandbox Code Playgroud)

解决方案:

我发现了我的问题......出于某种原因,它看起来像一个字符串,但实际上并不是一个字符串,所以现在我正在转换nameValue为一个字符串并且它正在工作。

var nameValue = dojo.query('#Comments .Comment:last-child > a[name]').attr('name'); //comment_1234
var string = String(nameValue); //cast nameValue as a string
var id = string.match(/^comment_(\d+)/)[1]; //1234
Run Code Online (Sandbox Code Playgroud)

javascript regex

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

在Rails中使用kramdown 3

我正在尝试将一些Markdown样式添加到我的Rails 3博客应用程序中.这应该是简单的,但我不能让它工作.

我有kramdown我的Gemfile:

gem 'kramdown'
Run Code Online (Sandbox Code Playgroud)

我跑bundle install.我有一个名为的应用程序助手kramdown

module ApplicationHelper
  def kramdown(text)
    require 'kramdown'
    return Kramdown::Document.new(text).to_html
  end
end
Run Code Online (Sandbox Code Playgroud)

在我的视图脚本中:

<%= kramdown(@post.body) %>
Run Code Online (Sandbox Code Playgroud)

我收到错误消息:

没有这样的文件加载 - kramdown

我究竟做错了什么?

ruby ruby-on-rails-3

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

jQuery:当src是一个不同的域时,如何操纵iframe的内容?

我有一个iframe加载页面,我想操纵内容.

例如:

<iframe id="myIframe" src="http://www.google.com"></iframe>

<script>
    $(document).ready(function(){
        $(iframeContents).css('background-color', '#000');
    });
</script>
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

javascript jquery

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

Git:更改不应该留在他们的分支中吗?

我对使用 Git 比较陌生。这是我到目前为止所做的:

$ git branch
* master

$ git status
# On branch master
nothing to commit (working directory clean)

$ git branch mywork
$ git checkout mywork
$ git branch
* mywork
  master

...modify some files...

$ git status
# On branch mywork
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   modified:   file1.html
#   modified:   file2.html …
Run Code Online (Sandbox Code Playgroud)

git

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

Zend Framework:如何停止调度/控制器执行?

我有一个Zend Framework控制器editAction().

class WidgetController extends BaseController
{
   public function editAction()
   {
       //code here
   }
}
Run Code Online (Sandbox Code Playgroud)

该控制器扩展了一个基本控制器,该控制器在允许用户编辑记录之前检查用户是否已登录.

class BaseController extends Zend_Controller_Action
{
   public function init()
   {
       if ($this->userNotLoggedIn()) {
           return $this->_redirect('/auth/login');
       }
   }
}
Run Code Online (Sandbox Code Playgroud)

但是,现在我正在执行AJAX请求,我将返回一个JSON响应,因此重定向将不再起作用.我需要停止进一步的控制器执行,以便我可以立即发送响应:

class BaseController extends Zend_Controller_Action
{
   public function init()
   {
       if ($this->userNotLoggedIn()) {
           if ($this->_request->isXmlHttpRequest()) {
               $jsonData = Zend_Json::encode(array('error'=>'You are not logged in!'));
               $this->getResponse()
                    ->setHttpResponseCode(401)
                    ->setBody($jsonData)
                    ->setHeader('Content-Type', 'text/json');
               //now stop controller execution so that the WidgetController does not continue
           } else {
               return $this->_redirect('/auth/login');
           } …
Run Code Online (Sandbox Code Playgroud)

ajax zend-framework zend-controller

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

Ruby:如何迭代哈希并根据项目数量做一些不同的事情?

我正在使用看起来像这样的哈希:

h = {
    "side1"=>["green", "Green"], 
    "side2"=>["verde", "Verde"]
}
Run Code Online (Sandbox Code Playgroud)

但是,它可能只有一个项目:

h = { 
    "side2"=>["verde", "Verde"]
}
Run Code Online (Sandbox Code Playgroud)

我想输出哈希,使它看起来像这样:

用户将side1从绿色更改为绿色,将 side2从verde更改为Verde

当有两个项目将与"和"分开.否则它将如下所示:

用户将ver2改为verde

这一切都发生在我的rails视图脚本中.如何编写代码才能执行此操作?

ruby ruby-on-rails

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

PHP:如何将字符串作为参数传递而不用引号括起来?

我有一些HTML,当条件满足时,我需要将其包装在锚标记中.我可以这样做:

<?php
    $html = '<div>my html</div>';
    if ($condition):
?>
    <a href="http://google.com"><?php echo $html ?></a>
<?php else: ?>
    <?php echo $html ?>
<?php endif; ?>
Run Code Online (Sandbox Code Playgroud)

...但我不想将html包装在引号中以将其转换为字符串.这有两个原因:语法突出显示消失,而且难以维护.

我该如何做以下事情?

<!-- pseudo code -->
<?php if ($condition): echo $this->wrapWithLinkTo('http://google.com', ?>
    <div>my html</div>
<?php ); endif; ?>
Run Code Online (Sandbox Code Playgroud)

......所以最终的结果是:

<!-- when $condition is true -->
<a href="http://google.com"><div>my html</div></a>

<!-- when $condition is false -->
<div>my html</div>
Run Code Online (Sandbox Code Playgroud)

php

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

Rails:如何单独使用ActionMailer?

我正在创建一个用于发送电子邮件的应用.我不需要使用常规邮件程序和查看模板,因为我只是接收将用于生成电子邮件的数据.但是,我认为使用ActionMailer而不是SMTP直接交互有一些好处.我试图实例化一个新的实例时遇到了问题ActionMailer::Base.如何ActionMailer在不必定义扩展的新类的情况下单独使用ActionMailer::Base

ruby ruby-on-rails actionmailer

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