facebook twitter hatena line email

「Php/fuelphp/db orm」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(ページの作成:「==crudとは== 「作成(Create)」「読み出し(Read)」「更新(Update)」「削除(Delete)」をそれぞれ頭文字で表したものでクラッ...」)
 
(必須設定)
行4: 行4:
 
==必須設定==
 
==必須設定==
 
#ormパッケージを使用可能に設定する
 
#ormパッケージを使用可能に設定する
 +
以下箇所のコメントアウトを取り除く
  
 
fuel/app/config/config.php
 
fuel/app/config/config.php
  -188                        //'orm',
+
  'always_load' => array(
  +188                        'orm',
+
        'packages' => array(
 
+
            'orm',
 +
          ),
 +
),
  
 
==以下ファイルを作成==
 
==以下ファイルを作成==

2015年10月25日 (日) 21:09時点における版

crudとは

「作成(Create)」「読み出し(Read)」「更新(Update)」「削除(Delete)」をそれぞれ頭文字で表したものでクラッドと読む

必須設定

  1. ormパッケージを使用可能に設定する

以下箇所のコメントアウトを取り除く

fuel/app/config/config.php

'always_load'  => array(
        'packages'  => array(
            'orm',
         ),
),

以下ファイルを作成

classes/model/test.php

class Model_Test extends Orm\Model
{
    protected static $_properties = array(
        'id',
        'name',
        'created_at',
        'updated_at'
    );
    protected static $_observers = array(
        'Orm\Observer_CreatedAt' => array(
            'events' => array('before_insert'),
            'mysql_timestamp' => false,
        ),
        'Orm\Observer_UpdatedAt' => array(
            'events' => array('before_save'),
            'mysql_timestamp' => false,
        ),
    );
}

データ取得

$test = Model_Test::find(1);
echo $test->name; // taro
var_dump($test->to_array()); // 連想配列で取得

データ取得(最初の1行

$test = Model_Test::first();
echo $test->name; // taro
$test = Model_Test::find('first', array('where' => array('name' => 'taro')));
print $test->name; // taro

データ全部取得

$tests = Model_Test::find('all'); // 連想配列の中にモデルクラスが格納されている
foreach ($tests as $test) {
  echo $test->name; // taro
}

データ条件取得

$tests = Model_Test::find('all', array(
   'where' => array(
       array('category_id', 1),
       ),
   ),
));
$tests = Model_Test::find('all', array(
   'where' => array(
       array('category_id', 1),
       'or' => array(
           array('category_id', 2),
       ),
   ),
));

データ条件&limit付き

$tests = Model_Test::find('all', array('limit' => 9
       ,'order_by' => array('name')));

データ条件順序指定

'order_by' => array('date' => 'desc'),

データ挿入

$test = Model_Test::forge(array(
    'name' => 'taro',
));
if ($test and $test->save()) {

データ更新

$test = Model_Test::find(1);
$test->name = 'taro';
if ($test and $test->save()) {

データ削除

if ($test = Model_Test::find(1))
{
      $test->delete();

注意

fuelphp1.1からシンプルなModel_Crudが使えるようになったので混同しないように。

modelディレクトリの下の階層にモデルクラスを作る場合のクラス名

$data['project_hoge'] = Model_Project_Hoge::find($id);

vi model/project/hoge.php
class Model_Project_Hoge extends \Orm\Model
{
  protected static $_properties = array(
  以下略