Windows + Xampp環境にAkelosで簡易Blogを作ってみる(1)


前回の「Windows + Xampp環境にAkelosのscaffoldを構築してみる(2)」からの続きです。
ちなみにこの記事はAkelos公式サイトの解説動画を参考にしています。

1).エラー判定を実装

scaffoldを作って一通りのCRUDを確認しましたが、もう少し実用的にするためにTitle項目に必須エラー判定を実装します。app/models/post/post.phpにvalidate関数を実装します。

[sourcecode language='php']
class Post extends ActiveRecord
{
function validate()
{
$this->validatesPresenceOf(‘title’);
}
}
?>
[/sourcecode]

画面を開き、Titleを空にして登録、または更新をしてみましょう。次のようにエラーメッセージが表示され、処理が中断されます。

image

2).ViewファイルのRails形式とPHP形式について

AkelosではViewファイルをRails形式に書くこともできるようです。次のコマンドをscriptフォルダからコマンドプロンプトで実行してください。

php generate scaffold Post Blog --force --sintags

Viewファイルが書き換えられます。例として変更前と後のソースを下記に載せておきます。

書換前
[sourcecode language='php']

link_to_show($post)?> link_to_edit($post)?> link_to_destroy($post)?>

[/sourcecode]

書換後
[sourcecode language='php']

<%= link_to_show post %> <%= link_to_edit post %> <%= link_to_destroy post %>

[/sourcecode]

公式の解説動画ではRails形式で解説を続けていますが、このブログではphp形式で解説を進めてみます。
もう一度次のコマンドを実行して、Viewファイルをphp形式に直します。

php generate scaffold Post Blog --force

3). viewファイルをブログ風に書き直していく

app/views/blog/listing.tplをブログ風になるように次のように書き換えます。

[sourcecode language='php']

_{The Akelos Blog}

{?posts}
{loop posts}


link_to($post->title, array(‘action’=>’show’, ‘id’=>$post->id)); ?>

{post.body}

{post.posted_at}link_to_edit($post); ?>

{end}
{end}

[/sourcecode]

ページを開くと次のように変更されているのが、確認できると思います。

image

更にapp/views/blog/show.tplを次のように書き換えてみます。

[sourcecode language='php']

_{Posts}


link_to($post->title, array(‘action’=>’show’, ‘id’=>$post->id)); ?>

textilize($post->body); ?>

{post.posted_at}link_to_edit($post); ?>

[/sourcecode]

text_helperのtextilizeを使うことで、Wikiのように強調や斜体で文字を飾りつけることができるようになります。下記の例のように入力を行い、show画面で確認してみてください。(ただし、日本語には対応できていないようです。)

image

image

次回に続きます。

コメント:2

ryu 08-12-16 (火) 0:05

scaffoldの–sintagsは知りませんでした。
今までイチイチ全部自力でRails風記法に書き換えてました。。。
いいことを知りました。どうもありがとうございます。

admin 08-12-16 (火) 23:25

コメントありがとうございます。
自分は解説動画の通りにやっただけなんですが、お役に立ててよかったです。
いちおう補足しておきますが、ハイフンは2つ付けるようです。念のため…。

コメントフォーム
Remember personal info

トラックバック:0

このエントリーへのトラックバックURL
http://www.studio-kingdom.com/akelos/365/trackback
フィード

メタ

Return to page top