5月 29

07.bakeする(controller,view)

go @ 5:27 AM

次に 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 についても同じようにしてコントローラとビューを作ります。

>>次のページ「フォームの見た目を変える」へ

Comments are closed.

here comes