先入観を持たないよう確認していきたいのですが、
まず、どういうデータ構造にしようとしているのでしょうか。
とりあえず class Tcomment extends \Model
を定義しているようですが、
クエリーは詳しくないのかな、ソートもなしにselect *じゃ順序がメチャクチャですけれど。
単に投稿を時系列に並べて表示するのか、
投稿に付帯するコメントも管理して、これも時系列に並べて表示するのか、
など、明らかにしていただきたく。
そのうえで、モデルでのデータ取得メソッドをどう定義するかとか、
ビューでどういうhtmlを出力するのかを考えていけばよいかと。
日本語ドキュメントはこちらから:
FuelPHP.JP 日本語ドキュメント
とりあえずやってみる!FuelPHP第1回〜FuelPHPの概要〜 | Geekroid
今の質問の内容だと、丸投げだと思われても敷かないところなので、
今知りたいところをピンポイント的に絞り込めないでしょうか。
システムを作れるところまで、この回答で全部教え込んでいくのはとてもむずかしいので。
「ここがわからないから前に進めない」ってところに絞った内容に質問を編集してください。
フォーム入力のチェックには、Validationクラスを使うとラクです。
Validation - クラス - FuelPHP ドキュメント
質問文中に現在のソースコードを貼り付けていただいたようですが、
繰り返しとなりますがFuelPHPの実行環境を再現する手間を今確保できないため、
情報提供のみで失礼します。
私が先にFuelPHPを書けるようになったときに読んでいたのが、この本になります:
はじめてのフレームワークとしてのFuelPHP第2版(3) 実践編 - 達人出版会
この本では、ここでこのコードを書く、っていうのをしつこく丁寧に説明してあって、
MVCモデル開発をどう進めるかの考え方から教わることができます。
わたしが膨大な時間を使ってここに説明を書き連ねるよりは、
まともなチュートリアルをやっていただいたほうが時間の節約になります。
10のうち1がわからなくて完成しない、っていう感じじゃなく、
10のうち9がわからない、っていう状況ではまだ、系統立てた学習が足りていない状況なので、
FuelPHPのfieldsetクラスの使い方に注目して事例を集めたほうがいいです。
例えばモデルはこうした方がいいかも:
php
1 public static function get_datas()
2 {
3 $query = DB::query('SELECT * FROM t_comment ORDER BY registed DESC'); // 登録日時で降順とか
4 return $query->execute();
5 }
キー付き配列に必要なデータを詰めて渡すやり方:
php
1 public function action_index()
2 {
3 $data = [];
4 $comment_data = Tcomment::get_datas();
5 $data['comment_data'] = $comment_data;
6 return View::forge('board/index', $data);
7 }
こういう書き方もある(HTMLエスケープする/しないを細かく制御できるので便利):
php
1 public function action_index()
2 {
3 $view = View::forge('board/index');
4 $comment_data = Tcomment::get_datas();
5 $view->set('comment_data', $comment_data); // htmlエスケープする時。エスケープしないときはset_safe()にする。
6 return $view;
7 }
ビューに関しては、思い出しながら
php
1<!DOCTYPE html>
2<html lang="ja">
3<head>
4<meta charset="UTF-8">
5<title>入力フォーム表示画面</title>
6</head>
7<body>
8 <div>
9<?php echo Form::open('board/index'); ?>
10 <div><?php echo Form::label('お名前', 'onamae'); ?>:<?php echo Form::input('onamae', Input::post('onamae')); ?></div>
11 <div><?php echo Form::label('コメント', 'comment'); ?>:<?php echo Form::input('comment', Input::post('comment')); ?></div>
12 <div><?php echo Form::submit('submit', '登録'); ?></div>
13<?php echo Form::close(); ?>
14
15 <div>
16 <table>
17 <tr>
18 <th>ID</th>
19 <th>名前</th>
20 <th>コメント</th>
21 <th>登録日</th>
22 </tr>
23 <?php foreach($comment_data as $data):?>
24 <tr>
25 <td><?php echo $data['id'];?></td>
26 <td><?php echo $data['name'];?></td>
27 <td><?php echo $data['comment'];?></td>
28 <td><?php echo $data['registed'];?></td>
29 </tr>
30 <?php endforeach;?>
31 </table>
32 </div>
33</body>
で表示できるとは思う。(うろ覚え)
fieldsetクラスの使い方は、こちらの記事を参照:
FuelPHPでフォーム作成1(Fieldset) - BTT's blog
$form = Fieldset::forge();
して
$form->add('name', 'お名前', array('maxlength' => 8));
みたいにフォーム入力の項目を定義していって、
$view->set_safe('form', $form->build(Uri::create('board/index')));
みたいにしてフォームをまるごと渡せれば、
viewの中で<?php echo $form; ?>
ってやっとけばフォームのHTMLが展開されるっていう。