前回から1ヵ月以上あいてしまいました
約1ヵ月あいての投稿。なかなかブログ書く習慣をつけるのは難しいですね。
勉強していなかったわけではないのですが、先週に次の現場でCakePHP3ではなくSymfony2を使うことが決まりそちらの方に着手していました。
とりあえず、基本を押さえる為にこの本を購入。
関連書籍が少ないのと日本語の解説サイトが若干古いので苦戦してます…。
新しい職場環境になるのでどうなるか不安ではありますが、なんとか頑張っていこうと思ってます。
CakePHP3: MigrationでForeignKeyのオプションを指定する
今回も自分用メモになります。
最近CakePHP3の習得のために、1年くらい前にCodeigniter3で作成したものをCakePHP3で再作成しています。 機能を比較しながらの為、それぞれのフレームワークのいいところ・悪いところが見えてきます。 やっぱりCodeigniterは軽かったんだな~とか、CakePHPは学習コスト結構かかるけど便利機能が多くて覚えることができたら今までの苦労がなくなるな~とか。
そんな中、テストを作成していたところ全てのテーブルを消してしまうポカをやらかし、この機会にMigrationで作りなおそうとしたところ外部キーのオプション指定の設定が見つかりにくかったので( ..)φメモメモ
- Migrations/xxxx_xxx【テーブル名】.phpにて
public function change(){ $this->table('テーブル名'); (中略) $table->addForeignKey('このテーブルのカラム名', '親テーブル名', '親テーブルのカラム名', [ // ON DELETEの指定。指定しない場合は「restrict」 'delete' => 'cascade', // ON DELETEの指定。指定しない場合は「restrict」 'update' => 'cascade', ]); }
メソッドの説明で第4引数のoptionsに軽く説明は載っているのですが
In $options you can specify on_delete|on_delete = cascade|no_action .., on_update, constraint = constraint name.
↑と書かれているので紛らわしかったです。(キーを「on_~」に指定すると動いてくれませんでした)
ブログのタイトル通り、本当に短文のメモばかりになってきた(;´・ω・)
yum updateした後にvagrant upで躓いた話
最近vagrantを使い始めたのですが、起動後して「yum update」した後に再度vagrantを立ち上げると下記のエラーが発生。
/sbin/mount.vboxsf: mounting failed with the error: No such device
一度は他に何もしていなかったのでboxを破棄して再度環境を整えたのですが、今回はある程度構築が進んでいた為、今後の為にも調べてみることに。
参考にさせてもらった記事はこちら
とりあえず、vagrant-vbguestプラグインをインストールしなおし...。
(Windowsコマンドプロンプトを使用)
C:\~ > vagrant plugin install vagrant-vbguest
インストール後にvagrant reloadで再起動。私の場合はこれのみで解消しました。
初歩的な躓きだとは思いますが、今後同じことが起きたとき用のメモとして残しておきます。
(おまけ/今回発生した環境)
Windows10 Home、Vagrant1.8.6、VirtualBox 5.0.26