「基本からしっかり学ぶ Symfony2 入門」メモ(2)
「基本からしっかり学ぶ Symfony2 入門」を買った。
- 作者: 後藤秀宣,金本貴志
- 出版社/メーカー: 技術評論社
- 発売日: 2015/12/16
- メディア: 大型本
- この商品を含むブログを見る
基本からしっかり学ぶ Symfony2入門:書籍案内|技術評論社
hidenorigoto/symfony2-book: 基本からしっかり学ぶSymfony2入門 サポートサイト
6-2 管理者用画面の実装
「お問い合わせエンティティへの管理フィールドの追加」で、
Inquiry
にprocess_status
、process_memo
を追加するところでエラーとなった。
> php.exe C:\Users\ishida\PhpstormProjects\classic-symfony\bin\console doctrine:schema:update --force Updating database schema... [Doctrine\DBAL\Exception\NotNullConstraintViolationException] An exception occurred while executing 'ALTER TABLE inquiry ADD process_stat us VARCHAR(20) NOT NULL': SQLSTATE[23502]: Not null violation: 7 ERROR: 列"process_status"にはNULL値 があります [Doctrine\DBAL\Driver\PDOException] SQLSTATE[23502]: Not null violation: 7 ERROR: 列"process_status"にはNULL値 があります [PDOException] SQLSTATE[23502]: Not null violation: 7 ERROR: 列"process_status"にはNULL値 があります doctrine:schema:update [--complete] [--dump-sql] [-f|--force] [--em [EM]] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--no-debug] [--] <command> Process finished with exit code 1 at 21:06:39. Execution time: 858 ms.
process_status
, process_memo
はNOT NULLだが、この時点で既にレコードが挿入されていたため。
それぞれデフォルト値を指定することにした。
* @ORM\Column(name="process_status", type="string", length=20, options={"default":"0"}) ... * @ORM\Column(name="process_memo", type="text", options={"default":""})
7-1 データフィクスチャ
app/console
の実行にPhpStormのCommand Line Tool Supportを使っていたのだが、doctrine/doctrine-fixtures-bundle
をインストールして新しいコマンドを追加したときは、コマンド一覧のリロードが必要となる。
7-2 CSVダウンロード機能の作成
何故Write::createFromString(",")
と引数にカンマを渡しているのだろうと疑問に思っていたのだけれど、サンプルコードを見て意味が分かった。これはダブルクォートじゃなくてシングルクォート2つだった。
つまり、
Write::createFromString(",")
と、カンマを渡しているように見えたがWrite::createFromString('', '')
と、空文字を2つ渡していた
買ったのはKindle版。紙の本では見ていない。
7-4 APIの作成
この本は全体的にSymfony以外の部分については、よく言えばシンプルに書いてある。Concert
の設計がdate:date
、time:time
というのはなかなか大胆。
「ちょっとした確認用にテストコマンドを用意しておくと便利」はとても良いアドバイスだと思う。