*

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

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

今日のお昼はダイエットに最適なこんにゃくラーメン

天気が悪いので自宅でゆっくり。 連休明けでカラダが重い。 お昼はこんにゃくラーメンを食べてみた。 前

記事を読む

no image

お茶してる

暑くなってきました。

記事を読む

Apple Motion5 クルクル3D回転しながら落ちてくる文字を作る

久しぶりの Motion5 ネタ。新製品も少し届いているけど、写真を取るのが面倒で後回しです。新しい

記事を読む

no image

FuelPHPをxrea(value domain)にインストールしてみたけど

CodeIgnaiterがライセンスの関係?で色々あるようなので移行しようと。 目をつけたのがFue

記事を読む

SONY α6300のピクチャープロファイルを色々調べてみる

こればっかりは好みもあるし、色々な場面で違いもあるので、絶対的なものとして決めることは出来ないでしょ

記事を読む

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

Message

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

CAPTCHA


Optionally add an image (JPEG only)

Sponsored Link

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

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

CeVIO Creative StudioがMacのWin10で認証失敗

久しぶりに更新できました。 この時期は寒くて...と言い訳から入

xismoを使ってみて覚えたところと謎なところ(追記あり)

謎と言っても私の理解が足りないだけなんですけどね^^; 一応私の

Macで MikuMikuDanceができる〜 nanoemというフリーソフト

blenderが難しすぎて挫折しかかっていたときに知った xismo

wacom Intuos ペンモデルの small (ミントブルー)がかわいい

誰がなんと言おうと美少女です! すっかり xismoが気に入って

無料3D作成ソフト xismo がすごくわかりやすい感じ

こんばんは 心は美少女です。 Blenderを使いこなす、という

→もっと見る




  •  

PAGE TOP ↑