「cake bake all でテーブル名エラー」 – cakePHPって規約がうるさいのね。


最初に CakePHP の cake bake all を使って Model/View/Controller を一気に作成したところ、

データベースでのCakePHP の複数形にひっかかって負のスパイラルに陥りました。

今後、苦しまないようにメモいたします

C:\workspace\cakePhpBakeSample>.\app\Console\cake bake all

Welcome to CakePHP v2.5.9 Console
---------------------------------------------------------------
App : app
Path: C:\workspace\cakePhpBakeSample\app\
---------------------------------------------------------------
Bake All
---------------------------------------------------------------
Possible Models based on your current database:
1. SyohinMaster
Enter a number from the list above,
type in the name of another model, or 'q' to exit
[q] > 1
Error: Table syohin_masters for model SyohinMaster was not found in datasource d
efault.
#0 C:\workspace\cakePhpBakeSample\lib\Cake\Model\Model.php(3572): Model->setSour
ce('syohin_masters')
#1 C:\workspace\cakePhpBakeSample\lib\Cake\Model\Model.php(1368): Model->getData
Source()
#2 C:\workspace\cakePhpBakeSample\lib\Cake\Console\Command\Task\ModelTask.php(52
4): Model->schema(true)
#3 C:\workspace\cakePhpBakeSample\lib\Cake\Console\Command\Task\ModelTask.php(82
2): ModelTask->doAssociations(Object(Model))
#4 C:\workspace\cakePhpBakeSample\lib\Cake\Console\Command\BakeShell.php(174): M
odelTask->bake(Object(Model), false)
#5 C:\workspace\cakePhpBakeSample\lib\Cake\Console\Shell.php(437): BakeShell->al
l()
#6 C:\workspace\cakePhpBakeSample\lib\Cake\Console\ShellDispatcher.php(209): She
ll->runCommand('all', Array)
#7 C:\workspace\cakePhpBakeSample\lib\Cake\Console\ShellDispatcher.php(66): Shel
lDispatcher->dispatch()
#8 C:\workspace\cakePhpBakeSample\app\Console\cake.php(47): ShellDispatcher::run
(Array)
#9 {main}

既存のテーブル名は”syohin_master” なのに何で最後に勝手にsがつけられてエラーなの?

テーブル名をrename するとエラーが解消できました。

cakePHPでの規約ではないでしょうか?

調査せねば・・・

次回へつづく。

0

Comments

0 comments

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください