修剪应用程序错误:尊重\验证\验证程序

时间:2017-05-19 20:07:34

标签: php validation respect-validation

尝试验证我的OrderForm.php时出现此错误。如果有人跟着Codecourse Shopping Cart Tutorial,您可能知道我为什么会收到此错误。这是我的一些文件中的代码,我认为这与此错误最相关,当然还有错误。

错误:

  

消息:未找到类'Respect \ Validation \ Validator'   文件:PATH / cart / app / Validation / Forms / OrderForm.php   13日

我还会发布我的目录文件夹的这张图片: Directory Folder Image

OrderForm.php

<?php

namespace Cart\Validation\Forms;


use Respect\Validation\Validator as v;

class OrderForm
{
    public static function rules()
    {
        return [
            'email' => v::email(),
            'name' => v::alpha(' '),
            'address1' => v::alnum(' -'),
            'address2' => v::optional(v::alnum(' -')),
            'city' => v::alnum(' '),
            'postal_code' => v::alnum(' '),
        ];
    }
}

Validator.php

<?php

namespace Cart\Validation;

use Cart\Validation\Contracts\ValidatorInterface;
use Psr\Http\Message\ServerRequestInterface as Request;
use Respect\Validation\Exceptions\NestedValidationException;

class Validator implements ValidatorInterface
{
    protected $errors = [];

    public function validate(Request $request, array $rules)
    {
        foreach ($rules as $field => $rule) {
            try {
                $rule->setName(ucfirst($field))->assert($request->getParam($field));
            } catch (NestedValidationException $e) {
                $this->errors[$field] = $e->getMessages();
            }
        }

        $_SESSION['errors'] = $this->errors;

        return $this;
    }

    public function fails()
    {
        return !empty($this->errors);
    }
}

ValidatorInterface.php

<?php

namespace Cart\Validation\Contracts;

use Psr\Http\Message\ServerRequestInterface as Request;

interface ValidatorInterface
{
    public function validate(Request $request, array $rules);
    public function fails();

}

编辑:我只想说我改变了:
use Respect\Validation\Validator as v;
到  use Cart\Validation\Validator as v;

然后我得到一个全新的错误,以便做到这一点。

2 个答案:

答案 0 :(得分:1)

在我看来,您可能会缺少诸如尊重/验证之类的依赖文件,因为在视频教程中已安装了某些元素,因此我建议您观看有关 任何 validation 例程,如“ Slim 3身份验证:”这样的代码过程,将使用包管理器(例如 composer < / strong>,在教程中可能已经错过了。

答案 1 :(得分:0)

它告诉你错误在哪里:

  

消息:类&#39;尊重\验证\验证器&#39;找不到

该类的路径无效,或该文件不在该路径上。我不完全确定,但如果你像use Respect\Validation\Validator as v;那样写,最终路径将是当前命名空间加上路径Cart\Validation\Forms\Respect\Validation\Validator

  

文件:PATH / cart / app / Validation / Forms / OrderForm.php on 13

第二部分就是在第13行'email' => v::email(),触发了错误。

编辑: 我刚看到那张图片,路径应为use \App\Validation\Validator