スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Yiiのモジュール内でのCRUD

正直、あんまり現状のYiiのCRUDは賢くない。
けれど文字通り足場(scaffoldってそういう意味らしい)を作ると考えるのなら、ないより全然いい!。
のだけれど、モジュールを作ってから、モジュール内にcurdコマンドがエラーだらけらになったので、自分の為に手順メモ。

1. moduleコマンドでモジュールを作成
2. 一旦yiicを終了して、configを修正。モジュールを読み込むようにする。← ここが抜けてた。
3. modelコマンドでモデルを作成。
4. crudコマンドでCRUSを作成。

わかれば簡単!

とりあえずテーブル作成

前提として。
 DB接続とか、基本的な設定はできているものとします。
 環境は Yii 1.1.0 + MySQL 5.1。OSはUbuntu 9.10を使ってます。
 モジュール名は kokyaku にしてみます。英語苦手。
まずはテーブル作成。
create table customers( 
  id int primary key auto_increment, 
  name varchar(255), 
  zip varchar(7), 
  tel varchar(30), 
  address varchar(255), 
  email varchar(255), 
  birthday datetime 
) Engine=InnoDB;


モジュールの作成


Yiiのルートディレクトリで以下のコマンドを叩く
$ ./protected/yiic shell
Yii Interactive Tool v1.1 (based on Yii v1.1.0)
Please type 'help' for help. Type 'exit' to quit.
>> module kokyaku
      mkdir /home/nakano/yii/testdrive/protected/modules
      mkdir /home/nakano/yii/testdrive/protected/modules/kokyaku
      mkdir /home/nakano/yii/testdrive/protected/modules/kokyaku/views
      mkdir /home/nakano/yii/testdrive/protected/modules/kokyaku/views/default
   generate views/default/index.php
      mkdir /home/nakano/yii/testdrive/protected/modules/kokyaku/views/layouts
      mkdir /home/nakano/yii/testdrive/protected/modules/kokyaku/controllers
   generate controllers/DefaultController.php
      mkdir /home/nakano/yii/testdrive/protected/modules/kokyaku/messages
      mkdir /home/nakano/yii/testdrive/protected/modules/kokyaku/components
      mkdir /home/nakano/yii/testdrive/protected/modules/kokyaku/models
   generate KokyakuModule.php

Module 'kokyaku' has been created under the following folder:
    /home/nakano/yii/testdrive/protected/modules/kokyaku

You may access it in the browser using the following URL:
    http://hostname/path/to/index.php?r=kokyaku

Note, the module needs to be installed first by adding 'kokyaku'
to the 'modules' property in the application configuration.

>> exit

ここで一旦閉じて次へ。

configファイルの設定

configファイル(普通は YII_ROOT/config/main.php )を編集する
name の下とかわかりやすいところに
	'name'=>'test app',
	'modules'=> array( 'kokyaku' ), // この行を追加する。複数モジュールを使う場合には array()の中に列挙

あとはmodelとcrudの作成

$ ./protected/yiic shell
Yii Interactive Tool v1.1 (based on Yii v1.1.0)
Please type 'help' for help. Type 'exit' to quit.
>> model kokyaku.models.Customer customers
   generate models/Customer.php
   generate fixtures/customers.php
   generate unit/CustomerTest.php

The following model classes are successfully generated:
    Customer

If you have a 'db' database connection, you can test these models now with:
    $model=Customer::model()->find();
    print_r($model);

>> crud kokyaku.models.Customer 
   generate CustomerController.php
   generate CustomerTest.php
      mkdir /home/nakano/yii/testdrive/protected/modules/kokyaku/views/customer
   generate create.php
   generate update.php
   generate index.php
   generate view.php
   generate admin.php
   generate _form.php
   generate _view.php

Crud 'customer' has been successfully created. You may access it via:
http://hostname/path/to/index.php?r=kokyaku/customer


こんなで完成。
前のエントリのスクリーンショットが実はここで作ったもの。

・・・失敗しまくった理由

モジュールを作った直後にhelp modelコマンドで、でてくる
 * Generates the Post model which should belong to module 'admin':
        model admin.models.Post
という記述を当てにして、configの設定をまったくしないまま、何度も
>> model kokyaku.Customer customers 
とかやるも全部エラー。。。
実はちゃんと日本語の説明もあるのに気づかずに30分くらい、無駄に格闘してたわけです・・。
スポンサーサイト

テーマ : プログラミング
ジャンル : コンピュータ

コメントの投稿

非公開コメント

プロフィール

takakino

Author:takakino
長いことPHPとかJavaとか、その昔はPerlとか。Webのシステム屋をずーっとやってきました。
最近Scalaにはまっています。

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
Yii (5)
カレンダー
10 | 2017/11 | 12
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 - -
Twitter
Twitterこそこそやってます
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。