*

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

公開日: : 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


 
 

関連記事

俺もヤリたい!!って思った動画

AVの話を期待してきた人ゴメン。 目指すものが見えた気がしただけ Tokyo Sto

記事を読む

Alexmos SimpleBGC GUI Firmware 2.41b4 を試す

YAWモーターも交換して全体のバランスを調整。やっと落ち着いたと思ったら新バージョンのファーム 2.

記事を読む

やっと来た!Panasonic LX100をPilotfly H1+に載せるのだ(愛)

さんざん引っ張った機種選び。周辺機器に遅れていた本体がやっと到着しました。と言っても悩んで注文が遅れ

記事を読む

Colorgradingcentral LUT Utility を試すが Macにインストール出来ない!(解決済み)

結局α6300は GH4に負けているところは殆ど無い訳です。つまり買えってことかと思うのですが、気に

記事を読む

いつの間にか Mac People がプログラミング雑誌になっている

最近めっきり本屋さんに行く機会が減りました。アマゾンでウロウロしたりヨドバシで買えばポイントもつくし

記事を読む

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

Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


Optionally add an image (JPEG only)

Sponsored Link

エレコム GRAPH GEAR NEO カメラバッグDGB-P01BKにジンバルを入れる

やっぱり高いけどEndurance (エンデュランス) カメラバッグの

エレコム GRAPH GEAR NEO カメラバッグDGB-P01BKが北の国から

一年中GWの美少女です。 Lowepro カメラリュック フリッ

MOZA Mini-S スマホ用スタビライザーが届いた!

1万円弱で買えるスマホ用ブラシレスジンバルの新型 MOZA Mini-

GoPro Hero7 Black用 保護ケース アルミ合金保護フレームがいいよって話

別に大した話ではありません。 最近書くことが少ないのでたまには書

期待の新製品 MOZA Mini-S スマホ用スタビライザーが発売されたみたい

教えてもらった新製品のホームページで MOZA Mini-Sが紹介され

→もっと見る




  •  

PAGE TOP ↑