无法修复调用未识别的方法?

时间:2014-08-05 13:52:14

标签: php laravel

由于某种原因,我的samplePartNumber代码不再一起工作,我不断收到错误。当前的一个是致命错误:在第28行的/Users/bradley/code/website/app/tests/unit/Web/Forms/SamplePartNumberFormTest.php中调用未定义的方法Web \ Forms \ SamplePartNumberForm :: validate()

我已经完成了一百次的代码,并且会欣赏新鲜的眼睛。

以下是测试:

<?php
use \Illuminate\Validation\Validator;
class SamplePartNumberFormTest extends TestCase
{

/**
 * Setup method
 */
public function setUp()
{
    parent::setUp();
    $this->form = $this->app->make('Mle\Web\Forms\SamplePartNumberForm');
}


/**
 * @test
 */
public function returns_true_with_valid_input()
{
    $input = [
        'part_number' => 'ASD-5',
        'quantity' => '3',
        'annual_usage' => '22000',
    ];

    $result = $this->form->validate($input);
    $this->assertTrue($result);
}


/**
 * @test
 *
 * @expectedException \Mle\Web\Forms\FormValidationException
 */
public function throws_exception_with_invalid_input()
{
    $input = [];
    $result = $this->form->validate($input);
}
}

以下是表格:

<?php
namespace Web\Forms;
use Forms\ValidatableFormInterface;
use Forms\FormValidator;
class SamplePartNumberForm implements ValidatableFormInterface
{

use FormValidator;

/**
 * Rules for validation
 * @var array
 */
protected $rules = ['part_number' => 'required', 'quantity' => 'required',    
'annual_usage'=> 'required'];

}

1 个答案:

答案 0 :(得分:0)

$result = $this->form->validate($input);

您在此行收到错误,因为此处 $ this-&gt; form 实例所代表的 \ Web \ Forms \ SamplePartNumberForm 类缺少方法验证()即可。您需要在 validate(array $ input_structure)

中实现它

其次你在课堂上有非法的进口使用。这需要位于 class {} 体外的文件的全局范围内;我在命名空间声明后推荐它。

class SamplePartNumberForm implements ValidatableFormInterface
{
  use FormValidator;
}

第三,如果你在 ValidatableFormInterface 中有任何方法,你还需要在具有公共可见性的SamplePartNumberForm类中实现它们。