*

宿の予約システムを作ってみる

公開日: : FuelPHP


題名も新たに FuelPHP を勉強していきます。間違いを発見したら教えていただければ幸いです。


理由はわかりませんが、なんとなく FuelPHP を使うならモデルは Model_Crud が標準なのかな?と思い、ここも勉強して見ることにしました。素の Model は前回の記事を参照してください。今回はこれを書き換えてみます。
前回のモデル部分は

from('yado_base');
$query->where('id',$id);
return $query->execute()->as_array();
}
}

これを Model_Curd に書き換えると次のようになります。たぶん^^;

class Model_Base extends \Model_Crud
{
protected static $_table_name = 'yado_base';
protected static $_primary_key = 'id';
}

つまり基本的なSQL部分は既に定義されているので、あらためてモデル側で書く必要が無い?ということのようです。一応解説すると、上のtable_name が使用するMySQLのテーブル。下のprimary_keyはプライマリーキーと読んだまんまですね。ここで疑問が…複数のテーブルを使う場合は???
次はコントローラー側を修正します。前回のソースは

class Controller_Base extends Controller
{
public function action_test($id)
{
$base = new Model_Base();
$user = array();
$user['name'] = 'admin';
$user['query'] = $base->get_user($id);
return Response::forge( View::forge('base', $user) );
}
}

これが今回の場合は次のように変わります。

class Controller_Base extends Controller
{
public function action_test($id)
{
$data = array();
$data['rows'] = Model_Base::find_by_pk($id);
return View::forge('base', $data);
}
}

VIEWも変更します。

<?php foreach ($rows as $row): ?>
ID : <?php echo $row['id'];  ?>
名称 : <?php echo $row['name']; ?>
<?php endforeach; ?>

ここで「あれ?」っていう結果になりました。こんな時はプロファイラーを稼働させます。プログラム開発段階では、このプロファイリングが役立ちます。設定は app/config/config.php にあります。46行目近辺にある ’profiling’ => false, を ’profiling’ => true, とするだけです。ただし今回のようにデーターベースに関する情報を表示させるには、app/config/db.php も編集する必要があるようです。

'default' => array(
'type'        => 'pdo',
'connection'  => array(
'persistent' => false,
),
'identifier'   => '`',
'table_prefix' => '',
'charset'      => 'utf8',
'enable_cache' => true,
'profiling'    => true,
),
'redis' => array(
'default' => array(

標準では ’profiling’ => false, となっています。これを上のように trueに変更します。app/config/development/db.php ではないのでご注意ください。
スクリーンショット 2012-11-05 23.54.41
すると図のような感じで実行されたSQL文が確認できるようになります。便利♫
発行されたSQL文は

SELECT `yado_base`.* FROM `yado_base` WHERE `id` = '1' LIMIT 1 OFFSET 0
Possible keys: PRIMARY ·Type: system ·Rows: 1 ·Speed: 1.445 ms

出てきた画面は
スクリーンショット 2012-11-06 0.11.33
SQL文に問題は無さそうだし、ためしにコントローラーの呼び出し部分を

$data['rows'] = Model_Base::find_one_by('id', $id);

と変えても変化がありません。ちなみにデーターベースには1件のみ登録されています…..(T_T) これはVIEWへのデータの渡し方がおかしいのではないか?VIEW側でやっていることは最低限だし。というわけでネットを徘徊しソースを検索。以下のように書換えたら成功しました。

$view = View::forge('base');
$data = array();
$data[] = Model_Base::find_by_pk($id);
$view->set('data', $data);
return $view;

VIEW側も調整

<?php foreach ($data as $row): ?>
ID : <?php echo $row['id'];  ?>
名称 : <?php echo $row['name']; ?>
<?php endforeach; ?>

まだまだ先は長い


Sponsored Link


 
 

関連記事

気になる情報・新製品発見メモ

日頃ネットをウロウロしていて記事にするほどでもない情報、記事にするほど内容がわからないものなどをメモ

記事を読む

no image

iPhone アプリ開発の教科書と携帯コーディングのメモ

よくわかる iPhone アプリ開発の教科書 買ってきた。やっぱり本で手元にある方が楽だ。アマゾンで

記事を読む

no image

メルマガ管理システムの設計らしきもの

あいかわらずただの覚書なので読まないほうが吉! 前回書き出した内容をグループ分けしてみる。 メール会

記事を読む

SimpleBGC2.50b2登場!そしてレンズ選びで頭を整理してみる

週末に発注した SmallRigがなかなか発送されないので寂しい雨です。ebayあたりからは、自由雲

記事を読む

基本料無料で050の固定番号が貰えるSMARTALKを入れてみた

050プラスを入れていたけど実際に使うのは月に1回あるかないか。そして遅延というかトランシーバー感覚

記事を読む

NI MASCHINE 新Expansion登場!STATIC FRICTION

新しいエクスパンションが登場。その名も「STATIC FRICTION」。価格は安定の4,800円。

記事を読む

ご質問は掲示板へお願いいたします。

Message

メールアドレスが公開されることはありません。

CAPTCHA


Optionally add an image (JPEG only)

Sponsored Link

気になる情報・新製品発見メモ

日頃ネットをウロウロしていて記事にするほどでもない情報、記事にするほど

SONY α6300 ピクチャープロファイルの比較検討(最終)

欲しかった Kontakt 5 - Native Instrument

可変NDフィルターの色かぶりを調整する【追試あり】

しかしセキが止まりませんな。既に二ヶ月近くゴホゴホ。鼻水ずるずる。熱は

SONY α6300 ピクチャープロファイルの比較検討(動画編)

前回の「SONY α6300 ピクチャープロファイルの比較検討」に引き

SONY α6300 ピクチャープロファイルの比較検討

最近はa6300を使う機会が増えています。そうなると6500が気になり

【妄想】片手持ちハンドヘルド 3軸ジンバルスタビライザーの比較

未だに風邪が抜けません。もう一ヶ月以上...どうやら今年の風邪は長引く

→もっと見る




  •  

PAGE TOP ↑