Yii Framework Forum: Yiiのノウハウ - Yii Framework Forum

Jump to content

  • (2 Pages)
  • +
  • 1
  • 2
  • You cannot start a new topic
  • You cannot reply to this topic

Yiiのノウハウ Rate Topic: -----

#1 User is offline   mocapapa 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 428
  • Joined: 04-January 09
  • Location:Tokyo, JAPAN

Posted 13 February 2009 - 07:22 PM

Yiiのノウハウを蓄積したいです。とりあえず以下のところに少々ありますが、他にあれば教えてください。

http://choco-moca.pu....org/wp/?cat=26
0

#2 User is offline   wjx 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 11
  • Joined: 28-December 08
  • Location:Tokyo Japan

Posted 16 February 2009 - 06:59 AM

http://www.yiiframew...m/doc/cookbook/
クックブック追加されましたね。

フォーラムのアカウントで誰でも投稿出来るみたいですが
自分はまだ披露出来るようなネタが無いです ::)

hangmanのソース読んで、CHtmlヘルパーのlinkButton()とか自動で
jQueryと連動したボタン作ってくれるのに今さら気づいてビビッてる所です。
0

#3 User is offline   mocapapa 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 428
  • Joined: 04-January 09
  • Location:Tokyo, JAPAN

Posted 16 February 2009 - 09:51 AM

cookbookに近日中に投稿する予定です。テーマはblogでも取り上げたhighslideです。

hangmanのソースを読まれているんですね。私はまだblog demoしか読んでいません。でもリレーションがまだ使えるようになっていません。
0

#4 User is offline   mocapapa 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 428
  • Joined: 04-January 09
  • Location:Tokyo, JAPAN

Posted 16 February 2009 - 09:41 PM

Quote

cookbookに近日中に投稿する予定です。テーマはblogでも取り上げたhighslideです。


cookbookに投稿しました。不備、不明点等があればお知らせください。

http://www.yiiframew...oc/cookbook/12/
0

#5 User is offline   wjx 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 11
  • Joined: 28-December 08
  • Location:Tokyo Japan

Posted 24 February 2009 - 07:50 AM

highslideイイですね。
思わず写真サイトとか作ってみたくなりました :D

僕はソースフォージにあるSQLiteマネージャーが使いにくかったので
もしフレームワークの中にデータベースマネージャーがあったら
メイン画面を見ながらDBテーブル構成も作成出来て最強じゃん??って思って
SQLiteマネージャー的な機能をYiiにぶち込もうとしてます ;D

まだSQLiteが直接サポートしてないのでALTER TABLEとか入れるのに手間取ってますが
全テーブル名一覧と、各テーブルのステータス作成に使われたSQLが
一覧出来る様になりました。

Posted Image

SQLiteじゃyなくて、phpMyAdminみたいにMySQLでやれば需要ありそうですが・・・。

Attached File(s)

  • Attached File  sqlm.gif (18.78K)
    Number of downloads: 7

0

#6 User is offline   mocapapa 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 428
  • Joined: 04-January 09
  • Location:Tokyo, JAPAN

Posted 24 February 2009 - 08:16 PM

とてもいいですね。

私もblog demoを試験するのにMySQLに変えればphpMyAdminが使えるものの、
- (MySQLでは)ユーザ名、パスワードが露わになる
+ (SQLiteでは)データも含めてgoogleに登録できる
ことからSQLiteをコマンドラインから使用していました。

phpSQLiteAdminのようなものがあったようですが、開発が止まっていたと思います。こういうものがあれば便利で良いですね。:)
0

#7 User is offline   mocapapa 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 428
  • Joined: 04-January 09
  • Location:Tokyo, JAPAN

Posted 25 February 2009 - 07:04 AM

ブログデモのエンハンスを連載 :)していますが、ウィジェットの開閉ができるようなjavascriptを開発しました。よろしければお試しください。

ミソは、単なる開閉ならjqueryで数行でできるのですが、ページ遷移の際に状態を忘れてしまうのが欠点でした。今回はpersistJSを使用してクライアントサイドにその状態を記憶することでウィジェットの開閉の一貫性を持たせたことです。

// ああ日本語だと説明しやすいなぁ

http://www.yiiframew...msg5130#msg5130
0

#8 User is offline   mocapapa 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 428
  • Joined: 04-January 09
  • Location:Tokyo, JAPAN

Posted 11 March 2009 - 12:42 AM

ドキュメントを訳していて得たノウハウを記しておきます。

ドキュメント'basics.component'にビヘービアの章が追記されました。ビヘービアは1.0.2からサポートされました。以下のMixinをサポートするためのもののようです。

Quote

Mixinとはオブジェクト指向プログラミング言語において、サブクラスによって継承されることにより機能を提供し、単体で動作することを意図しないクラスである。Mixin からの継承は、特化の一形態ではなく、むしろ機能を他のクラスから集めるための手段である。あるクラスは多重継承により複数の Mixin クラスから継承を行って、大半の機能を継承によって実現することができる。(略)

0

#9 User is offline   uniom 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 1
  • Joined: 20-May 09

Posted 20 May 2009 - 09:34 PM

はじまして、uniomといいます。

1年以上のSymfony経験者なのですが、Symfonyと比べてYiiはどんな感じかなと思い、
これから触ってみようと思います。
ドキュメントの翻訳もお手伝いできればと思います。
よろしくお願いします :)

0

#10 User is offline   mocapapa 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 428
  • Joined: 04-January 09
  • Location:Tokyo, JAPAN

Posted 21 May 2009 - 11:27 PM

1年以上のSymfonyですか、すごいですね。私はSymfonyは最初で挫折しました。デモレベルがうまく動作しなかったので。
その後CIをトライしてデモがすんなり動いたのでしばらくCIを勉強していましたが、ちいたんを経てYiiに至っています。よろしくお願いします。
0

#11 User is offline   Ichijin 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 1
  • Joined: 04-September 10

Posted 04 September 2010 - 08:11 PM

はじめまして、Ichijinと申します。

Yiiを使い始めて7カ月になります。
Symfonyより手軽でCakePHPよりわかりやすい?との印象ですでに実用にも使っているのですが、なにせネットでの検索対象としてはひどく少なく(自分も知れたことを発表していないのですが)て、時々困惑させられます。
今悩んでいるのは、rulesの使い方にほとんど実例が見つからない、ということ。フレームワークを使うのは、こうしたValidateが完備しているからこそだと思っていますが、実例が少ない。
どこかにrulesの実例を発表しているサイトがあれば、教えてください。
特に困っているのが、チェックボックスなどで複数選択した場合のrulesです。INでも、lengthでもエラーが出てしまいます。
INの場合:プロパティ "CRangeValidator.0" が定義されていません。 ※0って何か不明。
lengthの場合:strlen() expects parameter 1 to be string, array given
必須のために使っているわけではなく、エラーが発生した場合の値を保持するためで、フレームワークの便利なところなのでしょうが。
よろしくお願いします。
0

#12 User is offline   Takakino 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 2
  • Joined: 05-September 10

Posted 05 September 2010 - 01:25 AM

Ichijinさんはじめまして。
> 特に困っているのが、チェックボックスなどで複数選択した場合のrulesです。INでも、lengthでもエラーが出てしまいます。

実際にどんなコードを書いてます?
rules()の中身と、viewのコードとか教えてもらえれば、なんかわかるかもしれないです。
0

#13 User is offline   jamband 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 75
  • Joined: 05-November 10

Posted 10 November 2010 - 04:34 AM

現在、Yiiの日本語公式ガイドを見ながら
リレーショナルアクティブレコード』について学んでいますが
わからない点や確認したいことがいくつかあります

Yii1.1.4でdbはMySQLの場合


1. 『MyISAMエンジンでもリレーションARができてしまうのはなぜか』

公式ガイドでは
『1.0.1版からはデータベースに外部キー制約が定義されていない場合でもリレーショナルARを使用することができます』、と書いてありますが
これは1.0.1版以降はMyISAMだろうがInnoDBだろうが、リレーションARができるよってことでしょうか
その後に、ER図を挟んで、
『情報: 外部キー制約のサポートはDBMS毎に異ります.......』という情報があり混乱しています
実際MyISAMでやるとできるのですが、自分の解釈はあっているのか不安です


2. 『リレーションされた2つのテーブルのcolumn名の分け方はどのようにするのか』

例えば
users, wordsという2つのテーブルがあり
usersにはid, username, password, email
wordsにはid, user_id, eng, jpnというcolumnがあるとします
models/Wordsのrelations()に

'users' => array(self::BELONGS_TO, 'Users', 'user_id'),

とした場合、controllers/WordsControllerのactionIndexにてusersの特定のusernameを取得するには現在

public function actionIndex() {
    $models = Words::model()->with(array('users' => array('select' => 'username')))->findAll(array(
        'select' => 'id, eng, jpn',
        'condition' => 'user_id = ' . Yii::app()->user->id,
        'order' => 't.id ASC',
     ));

  $this->render('index', array(
        'models' => $models
    ));
}

としています

ただ、『'select' => 'id, eng, jpn' 』部分のidは
words, usersテーブルふたつともにあるが、明確にしなくて良いのか
もうひとつ、『'order' => 't.id ASC'』部分のt.idとは何か、さっぱりわかりません

『words.id ASC』や『??.id ASC』など試して失敗し
いろいろ調べていて『t.id』というものを使っているのが目につき、やってみた結果たまたま上手くいったのですが
理解が全くできていないので、理解されている方、少しのヒントでもかまわないので、教えていただけないでしょうか

P.S alias, aliasTokenなども公式ガイドを読んでも理解できていない現状です...
0

#14 User is offline   mocapapa 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 428
  • Joined: 04-January 09
  • Location:Tokyo, JAPAN

Posted 22 November 2010 - 12:45 AM

View Postjamband, on 10 November 2010 - 04:34 AM, said:

現在、Yiiの日本語公式ガイドを見ながら
リレーショナルアクティブレコード』について学んでいますが
わからない点や確認したいことがいくつかあります

ただ、『'select' => 'id, eng, jpn' 』部分のidは
words, usersテーブルふたつともにあるが、明確にしなくて良いのか
もうひとつ、『'order' => 't.id ASC'』部分のt.idとは何か、さっぱりわかりません

『words.id ASC』や『??.id ASC』など試して失敗し
いろいろ調べていて『t.id』というものを使っているのが目につき、やってみた結果たまたま上手くいったのですが
理解が全くできていないので、理解されている方、少しのヒントでもかまわないので、教えていただけないでしょうか

P.S alias, aliasTokenなども公式ガイドを読んでも理解できていない現状です...


日本語公式ガイドが古いせいですね(私のせいです、すみません)。

Quote

aliasToken: コラム接頭辞の場所取りです。コラム参照の曖昧さをなくすために対応するテーブル別名と置き換えられます。 デフォルトでは'??.'です。


とありますが、Yii 1.0までは'??.'であり、Yii 1.1からは't.'となったと思います。従って、't.id'で動作するのは正しい動作です。詳しくは対応する英文のガイドを見てください。

ちなみに、原文には以下のように変更されたとありました。

Quote

Note: the behavior of column disambiguation has been changed since version 1.1.0. Previously in version 1.0.x, by default Yii would automatically generate a table alias for each relational table, and we had to use the prefix ??. to refer to this automatically generated alias. Also, in version 1.0.x, the alias name of the primary table is the table name itself.

0

#15 User is offline   jamband 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 75
  • Joined: 05-November 10

Posted 22 November 2010 - 03:43 AM

すっきりしました
mocapapaさんありがとうございました
日本語訳に関しては誰のせいでもなく、むしろなかったら自分もYii触ってないので、逆に感謝でいっぱいです
0

#16 User is offline   jamband 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 75
  • Joined: 05-November 10

Posted 14 December 2010 - 10:06 PM

実行されたSQL文を確認する方法

yii1.1.5を使用しています
applocationName/protected/config/main.php内の'components' => array以降に

'log'=>array(
	'class'=>'CLogRouter',
	'routes'=>array(
		array(
			'class'=>'CWebLogRoute',
			'levels'=>'trace',
			'categories'=>'system.db.CDbCommand',
		),
	),
),

とするとウェブページの最後に実行されたSQL文が表示されますが
その他の別のやり方でSQL文を確認できる方法はないでしょうか?あれば教えてください

参考リンク
http://www.yiiframew.../topics.logging
http://www.yiiframew...-while-testing/
0

#17 User is offline   camyuy 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 1
  • Joined: 28-December 10

Posted 28 December 2010 - 02:14 AM

http://www.yiiframew...sion/yiidebugtb

上記のエクステンションは参考になるでしょうか?
0

#18 User is offline   jamband 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 75
  • Joined: 05-November 10

Posted 28 December 2010 - 02:39 AM

yiidebugtb
ぱっと見、CakePHPでいうDebugkitみたいな感じでしょうか

extensionはまだ使用したことがないので
これを機に一度試してみたいと思います ありがとうございます!
0

#19 User is offline   jamband 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 75
  • Joined: 05-November 10

Posted 12 April 2011 - 11:31 PM

CActiveRecord::rules()での'safe'の理解がなかなか得られないのですが
これはどういう意味があるのか、ご存知の方おられますか?

参考リンク
[Guide] Securing Attribute Assignments
[Wiki] Understanding "Safe" Validation Rules
0

#20 User is offline   jamband 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 75
  • Joined: 05-November 10

Posted 14 April 2011 - 01:41 AM

CActiveRecord::rules()での'safe'の件ですが、
必須ではなく、かつ、特定のバリデーションルールを持っていないものに対して行うものと、理解しました
訂正あれば、追加でコメント下さい
0

Share this topic:


  • (2 Pages)
  • +
  • 1
  • 2
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users