小编eli*_*lon的帖子

创建PHPUnit模拟模型使用默认数据库而不是CakePHP中的test

我在CakePHP 2中测试一个模型并且模拟了这样的模型:

$this->User = $this->getMock('User', array(
  '_saveUploadedFile',
  '_removeUploadedFile',
)); 
$this->User->expects($this->any())
        ->method('_saveUploadedFile')
        ->with($data, Configure::read('App.myDirectory'), true);
        ->will($this->returnValue(true));
$this->User->expects($this->any())
        ->method('_removeUploadedFile')
        ->with($data, Configure::read('App.myDirectory'))
        ->will($this->returnValue(true));
Run Code Online (Sandbox Code Playgroud)

由于使用数据库的任何操作都会引发以下错误:

"Database table mock__user_b6241a4cs for model User was not found."
Run Code Online (Sandbox Code Playgroud)

我重新定义了模型信息:

$this->User->alias = 'User';
$this->User->useTable = 'users';
Run Code Online (Sandbox Code Playgroud)

现在测试运行良好,但它使用的是$default数据库,database.php而不是$test.可能发生什么?

使用模拟对象时,为什么测试的数据库配置会发生变化?是否与数据库权限相关,导致模拟对象无法创建自定义表?

谢谢!

php phpunit unit-testing cakephp mocking

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

为什么Object ::尝试工作,如果它被发送到一个nil对象?

如果您尝试nil在Ruby中调用对象上的方法,则会NoMethodError出现以下消息的异常:

"undefined method ‘...’ for nil:NilClass"
Run Code Online (Sandbox Code Playgroud)

但是,try在Rails中有一个方法,nil如果它被发送到一个nil对象,它就会返回:

require 'rubygems'
require 'active_support/all'

nil.try(:nonexisting_method) # no NoMethodError exception anymore
Run Code Online (Sandbox Code Playgroud)

那么try内部如何工作以防止该异常?

ruby ruby-on-rails activesupport

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

在CakePHP中定义模型类的层次结构

默认情况下,CakePHP有一个AppModel类,应用程序的每个模型都继承自它.在模型之间共享逻辑的常见设计模式是创建行为并$actAs为该行为配置模型.

但是,如果我想引入这样的模型类层次结构呢?:

AppModel
  |__ Vehicle
        |__ Car
        |__ Bike
        |__ Helicopter
Run Code Online (Sandbox Code Playgroud)

我试图创建一个Vehicle继承自的类,AppModel然后每个子类都继承自Vehicle.但CakePHP告诉我它无法找到这个类Vehicle.

我怎么能创建这个以及CakePHP目录树中应该创建的位置Vehicle

谢谢!

inheritance cakephp model class-hierarchy

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

获取模型名称以在CakePHP中的AppModel中实现可重用的方法

如何获取当前的型号名称AppModel

我有这个代码来验证密码和确认密码.但我想把它放进去AppModelp:

function isSameAs($check, $field) {
  if( $check === $this->data['User'][$field] ) {
    return true;
  }
  else {
    return false;
  }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用CakePHP 2.

php cakephp model

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

同时动画多个UIViews

我有三个UIButton物体在视觉上堆叠在一起.当用户点击按钮时,下面的按钮应向下移动一定距离.我正在使用以下动画块:

// Assuming button 1 was clicked...
[UIView animateWithDuration:0.25f
                      delay:0.0f
                    options:UIViewAnimationOptionCurveLinear
                 animations:^(void) {
                   self.button2.frame = CGRectOffset(self.button2.frame, 0.0f, 20.0f);
                   self.button3.frame = CGRectOffset(self.button3.frame, 0.0f, 20.0f);
                 }
                 completion:^(BOOL finished) { NSLog(@"Finished"); }];
Run Code Online (Sandbox Code Playgroud)

如果我增加动画持续时间,例如从0.25增加到0.75,则按钮不会保持在一起但它们开始以不同的时间间隔移动.我已经尝试过使用Core Animation方法,通过对动画和其他内容进行分组,但还没有找到任何解决方案.

你有什么想法?现在我保持持续时间,0.25直到我想出一些东西.

animation uiview ios

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

如何在Objective-C中表示可选的Bool(Bool?)?

我想在swift中编写一个协议

@objc protocol RestAPIManagerDelegate {

      optional func credentialValidated(isValid: Bool?)
}
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

'Method cannot be marked @objc because the type of the parameter cannot be represented in Objective-C'
Run Code Online (Sandbox Code Playgroud)

有什么建议吗?

swift

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

使用模型类在Symfony中检索数据

假设我有一个Ecosystem用我的symfony自动生成的模型schema.yml.在代码中的某个时刻,我想从表中检索记录.

我知道有一些方法可以用Doctrine/Propel类来做到这一点,但是,有没有办法直接用模型做到这一点?我一直在考虑这样的事情:

$ecosystem = new Ecosystem();
$records = $ecosystem->find(...);
Run Code Online (Sandbox Code Playgroud)

顺便说一句,这是做这种事情的首选方法吗?

我一直在使用CakePHP进行开发,直接使用Doctrine进行查询对我来说并不自然.如果我明天决定改为Propel怎么办?

谢谢!

php doctrine symfony1 model

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

在CakePHP表单中禁用使用安全组件和jQuery的输入元素

我在CakePHP中有一个表单,它有两个实时搜索文本输入.当用户选择结果时,它们中的每一个都更新隐藏字段的值.调用模型Record,涉及的属性是

  • budget_id
  • program_id
  • concept_id

我以这种方式使用FormHelper创建了一个表单:

...
<?php echo $this->Form->create('Record') ?>
<h1>Create a record</h1>

<?php echo $this->Form->hidden('Record.budget_id', array('value' => $budget['Budget']['id'])) ?>

<?php echo $this->Form->hidden('Record.program_id') ?>
<?php echo $this->Form->input('Record.program_id_search', array(...)) ?>

<?php echo $this->Form->hidden('Record.concept_id') ?>
<?php echo $this->Form->input('Record.concept_id_search', array(...)) ?>

<?php echo $this->Form->submit('Send') ?>
<?php echo $this->Form->end(); ?>
...
Run Code Online (Sandbox Code Playgroud)

如您所见,隐藏了存储模型属性的输入字段.实时搜索框配置了jQuery的自动完成插件.

按照CakePHP手册的建议,我已经在beforeFilter方法中禁用了两个额外的字段,以便安全组件忽略它们并且表单通过验证:

public function beforeFilter() {
  $this->Security->disabledFields = array(
    'Record.program_id_search',
    'Record.concept_id_search',
  );
}
Run Code Online (Sandbox Code Playgroud)

每当我从Javascript更改隐藏输入的值时,CakePHP似乎都会生气,它会将我发送到blackhole方法.根据文档,这没关系.

但令我惊讶的是,安全组件一直忽略我的disabledFields设置.

我一直在搜索几个网络资源,每个人都指向disabledFields选项.但它对我不起作用.

有什么建议?

谢谢!!

UPDATE

我找到了一个解决方法,但它真的很难看.我已使用常规选择字段替换隐藏的输入字段,但将CSS显示属性设置为none …

security jquery components cakephp autocomplete

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

C++ !! 转换为布尔

在C++中,有一种!!适用于非bool值的结构,可将其转换为bool.例如:

int n = 12;

if ( !!n )
  std::<<cout << "n is true";
else
  std::<<cout << "n is false";
Run Code Online (Sandbox Code Playgroud)

是否有可以应用的限制,或适用的类型:POD,指针等?

c++ if-statement conditional-statements

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

iOS 5 NSString版本不可用

我在网上看到,当我创建一个对象时alloc,init我必须释放它(甚至一个NSString),所以:

为什么我这样创建NSString:

NSString *prova = [[NSString alloc] init];
[prova release];
Run Code Online (Sandbox Code Playgroud)

我收到这些错误:

'release'不可用:在自动参考计数模式下不可用

ARC禁止"发布"的显式消息发送

[prova release]消息上?我尝试这样做时没有错误:

NSString *prova = [[NSString alloc] init];
NSLog(@"Contenuto 0 di prova: %@", prova);
prova = @"prima prova stringa";
NSLog(@"Contenuto 1 di prova: %@", prova);
prova = @"ma cosè questo fantomatico errore";
NSLog(@"Contenuto 2 di prova: %@", prova);
Run Code Online (Sandbox Code Playgroud)

iphone ios5 xcode4.2

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