-1

前の質問に加えて、モデル/教義エンティティへの zend フィルターと検証チェーンのアタッチに加えて、Spiffy フレームワークを試してみましたが、次のような例外でスタックを取得しました: Exception No form element was specified for "title" and one not be "Spiffy\Zend\Form" から自動的に決定されます。私のエンティティにはこれがあります:

<?php

namespace Entities;
use Doctrine\ORM\Mapping as ORM;
use Spiffy\Doctrine\AbstractEntity as Entity;
use Spiffy\Doctrine\Annotations\Filters as Filter;
use Spiffy\Doctrine\Annotations\Validators as Assert;

/** @ORM\Entity(repositoryClass="Repositories\PostRepository") */
class Post extends Entity {

public function __construct()     
{
    $this->created  = new \DateTime("now");
    $this->comments = new \Doctrine\Common\Collections\ArrayCollection();
}


public function __get($property)
{
    return $this->$property;
}

public function __set($name, $value)
{
    $this->$name = $value;

    return $this->$name;
}

/**
 * @ORM\Id @ORM\Column(type="integer") @ORM\GeneratedValue
 */
private $id;

/**
 * @var string $title
 * @Filter\Alnum
 * @Assert\StringLength(5)
 * @ORM\Column(type="string",length=255) 
 */
private $title;

/**
 * @ORM\Column(type="text")
 */
private $body;

/**
 * @ORM\Column(type="datetime")
 */
private $created;

/**
 * @ORM\OneToMany(targetEntity="Comment", mappedBy="post", fetch="LAZY")
 */
private $comments;
}

そして、私のフォームは次のようなものです:

   <?php
   use \Spiffy\Zend\Form as Form;
   class Application_Form_Post extends Form
   {

     public function init()
    {

      //var_dump($this->getEntity()); //returns null
      // die;
      $this->add('title');

      $this->add('body');

     $this->addElement('submit', 'submit', array(

    ));

  }
 }

だから私はここで自分自身をブロックしています。ご協力ありがとうございました。

4

1 に答える 1

0

私のapplication.iniで、次の行をコメントアウトしました:

 pluginPaths.Bisna\Application\Resource\ = "Bisna/Application/Resource"

autoloaderNamespaces[] = Bisna

しかし、私はまだ例外があります:

  Uncaught exception 'ReflectionException' with message 'Class Doctrine\ORM\Mapping\Driver\AnnotationDriver does not exist' in C:\Spiffy\lib\Spiffy\Doctrine\Container.php on line 359

私にとって明確ではないのは、bisna リソースに次のようなものがあったことです。

  \Zend_Registry::set('doctrine', $container);

そして、気の利いたリソースでは、次のようにしました:

 `Zend_Registry::set('Spiffy_Doctrine', $container);`

しかし、Boostrap.php には次の 2 つがありました。

    $this->bootstrap('doctrine');
    $container = $this->getResource('doctrine');

私は doctrine と Spiffy_Doctrine の違いであると予想されていましたが、そうではありません。そして、私にとって理解できない何か他のもの。Spiffy コンテナの一部の行を次のように変更します。

try{
$reflClass = new ReflectionClass($driverClass);
}catch (LogicException $Exception) {
die('Not gonna make it in here...');
}
catch(ReflectionException $Exception)
{
die('Your class does not exist! ' );
}

しかし、例外をキャッチする代わりに、私はこれを得ました:

`Uncaught exception 'ReflectionException'`

Ps: linekdin のドクトリン グループの内容と重複して申し訳ありませんが、これらは私の回答です。今、私は自分のアプリケーションをデバッグしています。何が欠けているのかを理解するかもしれませんが、どんな助けも素晴らしいでしょう。ありがとうございました。

于 2012-05-08T12:12:31.627 に答える