*

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

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

Connector/Net 6.0 が来た

Connector/Net 6.0 is the latest release of MySQL's

記事を読む

Sytrus の無料プリセットダウンロードまとめ

軟弱DTM野郎としてはプリセットが神である。もちろん貧乏なので無料が大好き。 最初に使い方として

記事を読む

SmallRigから追加部品が到着したので確認してみる

なんとなくリグの基本部分は固まってきたように思います。しかし色々と悩みというか決まらない部分もあって

記事を読む

WordPress のドメインごとサーバー移転が完了

要はドメインもそのままでレンタルサーバーだけ違う会社に移転したってことです。思ったよりカナリ簡単にで

記事を読む

GH4のV-LogとNatural-Logを試す – 10bit:8bit, ISO200-6400, Sharpness

果たして10bit4:2:2の外部収録に意味はあるのか? 言うまでもなく意味はあるんでしょうが、自分

記事を読む

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

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 ↑