このように定義されたマップされたスーパークラスがあります:
/** @ORM\MappedSuperclass */
abstract class BaseEntity {
/**
* @var string $id
*
* @ORM\Column(name="id", type="string", length=32, nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
protected $id;
/**
* @var datetime $dateCreated
*
* @ORM\Column(name="date_created", type="datetime", nullable=false)
*/
protected $dateCreated;
function __construct() {
$this->id = $this->generateId();
}
そしてそれを拡張するサブクラス。私はこの例外を受け取ります:
General error: 1364 Field 'id' doesn't have a default value
オブジェクトを構築した後に getId メソッドでエコーを実行すると、有効な文字列が返されるため、そうではありません。興味深いことに、同じテーブルに何かを挿入する前に検索クエリを実行します。検索クエリは「id」フィールドを認識しますが、挿入は認識しませんが、両方とも date_created フィールドを認識します。何が起こっている可能性がありますか?