5月 29
07.bakeする(controller,view)
次に C を選んでコントローラを作ります。
モデルの時と同様の選択画面になるので、
2. Members
を選択します。
—————————————————————
Baking MembersController
—————————————————————
Would you like to build your controller interactively? (y/n)
[y] >
とりあえずYESですね。
Would you like to use scaffolding? (y/n)
[n] >
スキャフォルドをするかどうかですが、しないのでNOです。
Would you like to include some basic class methods (index(), add(), view(), edit())? (y/n)
[n] > y
indexとかaddとかの基本のアクションを作るかどうかですね。ここでYESです。
Would you like to create the methods for admin routing? (y/n)
[n] > y
adminルーティングを使うかどうかです。これはYESです。
Would you like this controller to use other helpers besides HtmlHelper and FormHelper? (y/n)
[n] >
Would you like this controller to use any components? (y/n)
[n] >
Would you like to use Sessions? (y/n)
[y] >—————————————————————
The following controller will be created:
—————————————————————
Controller Name: Members
—————————————————————
Look okay? (y/n)
[y] >
その後はそのままです。
/app/controllers/members_controller.php が作られました。
ここで一旦 q を選んで bake を抜けます。
そしてもう一回
cake bake
と打って、起動し、 V を選んでビューを作ります。
やはり2番のMembersを選んで進みます。
Would you like to create some scaffolded views (index, add, view, edit) for this controller?
NOTE: Before doing so, you’ll need to create your controller and model classes (including associated models). (y/n)
[n] > y
ここはYESにします。
Would you like to create the views for admin routing? (y/n)
[y] >
ここもとりあえずYESにします。
/app/views/ 以下に members というフォルダーが作られ、 index.ctp 他の各アクション用ビューが自動生成されます。
なぜビューの前で一旦bakeを抜けるかと言うと、モデルからビューまで続けてやった場合は、以下のようにmembersの登録フォームにfavorites(好きな物)の選択が出現しません。
<div class="members form">
<?php echo $form->create('Member');?>
<fieldset>
<legend><?php __('Add Member');?></legend>
<?php
echo $form->input('email');
echo $form->input('password');
echo $form->input('type_id');
echo $form->input('birthday');
echo $form->input('img1');
echo $form->input('img2');
?>
</fieldset>
<?php echo $form->end('Submit');?>
</div>
<div class="actions">
<ul>
<li><?php echo $html->link(__('List Members', true), array('action'=>'index'));?></li>
</ul>
</div>
ところが、ビューを作る前に一旦bakeを終了して、再起動してから始めた場合は、
<div class="members form">
<?php echo $form->create('Member');?>
<fieldset>
<legend><?php __('Add Member');?></legend>
<?php
echo $form->input('email');
echo $form->input('password');
echo $form->input('type_id');
echo $form->input('birthday');
echo $form->input('img1');
echo $form->input('img2');
echo $form->input('Favorite');
?>
</fieldset>
<?php echo $form->end('Submit');?>
</div>
<div class="actions">
<ul>
<li><?php echo $html->link(__('List Members', true), array('action'=>'index'));?></li>
<li><?php echo $html->link(__('List Types', true), array('controller'=> 'types', 'action'=>'index')); ?> </li>
<li><?php echo $html->link(__('New Type', true), array('controller'=> 'types', 'action'=>'add')); ?> </li>
<li><?php echo $html->link(__('List Favorites', true), array('controller'=> 'favorites', 'action'=>'index')); ?> </li>
<li><?php echo $html->link(__('New Favorite', true), array('controller'=> 'favorites', 'action'=>'add')); ?> </li>
</ul>
</div>
上記ソースの12行目に注目してください。このように「好きな物」の選択フォームが出現するのです。メニューも豊富になります。
users についても同じようにしてコントローラとビューを作ります。
