トップページphp
981コメント269KB

【PHP】Yii Framework

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/12/10(金) 00:41:11ID:???
PHP5 用 Framework Yii (イー) Framework スレ

公式
http://www.yiiframework.com/

チュートリアル
ttp://www.yiiframework.com/doc/guide/

公式フォーラム
ttp://www.yiiframework.com/forum/index.php?/forum/21-japanese/
06326092012/01/28(土) 15:14:14.90ID:???
>>625
確認の仕方が悪かったです。ありがとうございます。
idでmodule名を切り替え出来ました。

しかしmodelsやviewsを拡張していくことを考えるとやはり
moduleは直接編集していくのが本道なのかもという気がしてきました。

それを考えるとyii-userのprofilesの項目追加の仕組みがややこしいのも
CMSを提供するのと同時に、ソースを触らせない前提という意図もあるのかなと。
0633nobodyさん2012/01/28(土) 15:44:12.26ID:rvnKSfbf
gitを使ってマージすると3-wayマージが簡単になるから、それを使うという手も
意味分からんかったらごめん
0634nobodyさん2012/01/28(土) 17:21:17.49ID:???
>>631
CBaseListViewをextendsして独自に作っていく方法のほうがより好みのwidgetを作れます
jqueryとbbqをheadに貼り付けたくないだけなら、ここらへんを抜いたもんを上書きすればOK。まさにやってそうですけど

$cs=Yii::app()->getClientScript();
$cs->registerCoreScript('jquery');
$cs->registerCoreScript('bbq');
$cs->registerScriptFile($this->baseScriptUrl.'/jquery.yiilistview.js',CClientScript::POS_END);
$cs->registerScript(__CLASS__.'#'.$id,"jQuery('#$id').yiiListView($options);");

>>632
yii-userがどういうものを扱っているモジュールなのか考えれば
基本的な設定はconfig/main.phpで上書きするようにして
他は直接編集していく形をとるのがベストだと思います
あと、ビューはif文などに気を使いながら、直接編集していくものです。拡張もくそもない
でも前に言いましたが、yii-userは編集するリスクがかなりあるので、1から自分で作るほうが賢いやり方のように思います
0635nobodyさん2012/01/29(日) 00:01:11.23ID:???
http://www.a-side.com
0636nobodyさん2012/01/29(日) 02:39:53.42ID:AvSKvvcH
ちょっと前ここで話題になってたデータベースマイグレーションの有用性をずっと考えてたけど、
以下のような話に対応出来るという利点が一番大きいのかな
たしかにソースでデータベースの構造も構成管理出来るというのは納得できる利点なのかも

>ソースコードについて昔の状況が呼び出せてたとしても、それに依存するデータベースの状況も再現できなければまったく意味がないのです。
>これを実現するためには、従来はDDLを記述したファイルを直接コミットして管理するしかありませんでした。
http://www.atmarkit.co.jp/fdb/single/08s_jiemamy/jiemamy1.html
0637nobodyさん2012/01/29(日) 03:34:39.17ID:???
>>636
うん。おもしろい記事でした。ありがとう。
0638nobodyさん2012/01/29(日) 14:10:01.28ID:???
Yiiのマニュアル、Cookieのことについて書かれてないんだな
Wikiでまとめられてたけど
Cookieってそんな重要とされてないのかね
0639nobodyさん2012/01/29(日) 14:35:08.80ID:???
需要あると思うけど、なぜかないよね
俺もガイドがないから、仕方なくソースから勉強した
0640nobodyさん2012/01/29(日) 19:10:32.17ID:???
$form=$this->beginWidget('CActiveForm');
echo $form->textField($model,'name',array('size'=>50,'maxlength'=>50,'value'=>"デフォルト値"));

上記のようにデフォルトの値を設定すると、
送信後エラーが起きてフォームに戻ってきた場合、
上書きしたデフォルト値が元に戻ってしまいます

上書きした値を使いたい場合どうしたらいいですか?
0641nobodyさん2012/01/29(日) 19:52:30.40ID:???
>>640
ビューに直接PHPコードを書く方法
http://www.yiiframework.com/forum/index.php?/topic/16737-form-input-default-value-overrides-model-value/

モデルをnewしたときにデフォルト値を入れておく方法
http://www.yiiframework.com/forum/index.php?/topic/11960-preferred-way-to-set-dynamic-default-values-in-a-cactiverecord-model/page__view__findpost__p__58656

ここらへんが参考になるんじゃないでしょうか
06426362012/01/29(日) 21:12:56.09ID:AvSKvvcH
あ、あとちょっと前に話題になってたARの利点だけど、>>636のページのリンク先に以下のように記載があって、
まんまARの利点として言えるんじゃないかと思うんだがどうだろう
※記事の内容はARとは直接的に関係ない

http://objectclub.jp/community/XP-jp/xp_relate/evodb-jp
>データベースアクセスコードを明確に分離する
>データベースリファクタリングの影響を把握するためには、データベースがアプリケーションによってどのように使われているかを調べることが可能でなければならない。
>SQLがコード達の中に乱雑に散らばっているならば、調査は非常に困難になる。
>つまり、データベースがどこでどのように使用されているかを明らかにするために、明確なデータベースアクセス層を設けることが重要になる。
>データベースアクセス層を設ける際にはPofEAAの中からデータソースアーキテクチャパターンのどれかに従うことを勧める。

ちなみに上記で言及されているPofEAAにもARが紹介されている
http://capsctrl.que.jp/kdmsnr/wiki/PofEAA/?ActiveRecord

業務系開発の中では意外と歴史があるらしく、ここら辺の書籍を読むことで経緯なんかも深く知ることが出来るのかもね
0643nobodyさん2012/01/29(日) 23:42:45.59ID:hr7RMRmt
質問です。
category1 | category2
id name  | id name price category1_id
1 果物   | 1 りんご 300 1
2 野菜   | 2 みかん 200 1

上記のsqliteのデータベースにある2つのテーブルから
id name price
1 果物 500
2 野菜 0
のように取り出したいとき
SQLで書くと

SELECT id, name, price FROM category1 c1
LEFT JOIN (
 SELECT SUM(price) AS price, category1_id FROM category2
 GROUP BY category1_id
) c2 ON c1.id=c2.category1_id
という感じになるのですが、このSQLをARで書く場合

$criteria=new CDbCriteria;
$criteria->select=array('id','name','price');
$criteria->join='
LEFT JOIN (
 SELECT SUM(price) AS price, category1_id FROM category2
 GROUP BY category1_id
) c2 ON c1.id=c2.category1_id
';
$cat=Category1::model()->find($criteria);

のような感じに書いたのですがjoinの中をもっと簡単に書けないでしょうか?
0644nobodyさん2012/01/30(月) 01:19:36.01ID:???
>>643
これでやっちゃうとか
http://www.yiiframework.com/doc/api/1.1/CActiveRecord#findAllBySql-detail
0645nobodyさん2012/01/30(月) 05:21:55.39ID:???
$criteria->with = array('category2'=>array(
'select'=>'SUM(price) as price',
'group'=>'category1_id'
));

これでいけたりするんかいな?
0646nobodyさん2012/01/30(月) 05:53:09.13ID:???
見た感じ無理そうですけどwどうなんでしょう?
findAllBySql()で良いんじゃないですか?
0647nobodyさん2012/01/30(月) 20:07:10.18ID:???
>>643
そもそもSQL自体こうだろ。

SELECT c1.id, max(c2.name), sum(c2.price)
FROM category1 c1
LEFT JOIN category2 c2 ON c1.id=c2.category1_id
GROUP BY c1.id

SQLよく知らないのにAR使うのは百害あって一利なしだからやめといた方がいい。
0648nobodyさん2012/01/30(月) 21:09:49.76ID:???
>>647
category2を外部結合してるから、c2.priceがnullだと、sum(c2.price)もnullになっちゃうよ?
0649nobodyさん2012/01/30(月) 22:19:35.49ID:???
>>647
SQLよく知らないからARを使うんじゃん
あとテストくらいするでしょ?
0650nobodyさん2012/01/30(月) 23:18:57.78ID:???
>>648
だったらふつーは
sum(NullToZero(c2.price))
みたいにするよね。どう考えてもああはならん。

>>649
その認識はマジで改めた方がいい。
0651nobodyさん2012/01/30(月) 23:50:08.15ID:???
SQL知らないからAR使うとか酷いな。。
0652nobodyさん2012/01/30(月) 23:54:50.25ID:???
SQLをよく知らなくても、ARを使えばなんとなくでできちゃう部分はあるよね。
でもそのうち絶対壁にぶち当たるか、失敗する。
んで、ちゃんと勉強しておけばよかったと思うものさ。
0653nobodyさん2012/01/31(火) 01:06:10.85ID:???
いやぁしかしCDbCriteriaは使いやすいね。すばらしい。
0654nobodyさん2012/01/31(火) 02:10:02.03ID:???
必要になった時に必要な勉強すればいいじゃん
表面上の言葉だけで議論しても意味ないっす
0655nobodyさん2012/01/31(火) 03:24:00.33ID:???
便乗質問だけどmax(c1.name)はなんなん?
nameはナチュラルキーでUNIQUE NOT NULLだろうから、idと一対一つまり
複合UNIQUEとみなしてGROUP BY c1.id, c1.nameのようにしてはいけないの?
0656nobodyさん2012/01/31(火) 06:58:34.53ID:???
>>655
どっちでもいい
好みの問題
0657nobodyさん2012/01/31(火) 20:05:03.72ID:???
modelのrulesのプロパティーで、
safeはどんなケースで利用するものですか?

validateで何も制限をつけないときに
書いてますが使い方間違ってないですかね?
0658nobodyさん2012/01/31(火) 20:11:34.34ID:???
わざわざバカの軌道修正してやる義理もないし、好きにしろって感じだな。
0659nobodyさん2012/01/31(火) 20:17:47.83ID:???
↑なにこいつ?
0660nobodyさん2012/01/31(火) 21:53:33.07ID:LWh8fO+Y
↓ふたなりっ娘
0661nobodyさん2012/01/31(火) 22:01:16.11ID:LWh8fO+Y
>>657
俺もどんなケースでってのが思いつかないな

safeはルールを持ってない属性において、
$model->attributes = $_POST['model'];
で値を保存していいかどうかってことだよね?

基本的にフォームから受けとりたくない値が特別無い限りはその使い方でいいと思ってるんだけど
0662nobodyさん2012/02/01(水) 17:10:34.37ID:???
デモのブログのPost, Userでsafeが使われいるので
そこらへんを見ていくとわかるんじゃないでしょうか
0663nobodyさん2012/02/05(日) 03:14:13.74ID:G96rv1NI
SkillshareってYii Framework使ってるんだな
たまたま見つけたからテンション上がった

http://www.skillshare.com/careers
>Developer
>Back-end development using PHP (Yii Framework) and MySQL, following best coding practices
0664nobodyさん2012/02/12(日) 16:50:24.77ID:Qlu7hyjh
Filterクラスを作ったとして、以下のようにpreFilter内でrun()とpostFilter呼ぶのっておかしいよね?
そういう風に記述されているextensionがあったんだけど、
これだと他のextensionのpostFilterが呼び出されないことにならないか心配してる

class AnyFilter extends CFilter {
 protected function preFilter($filterChain) {
  $filterChain->run();
  $this->postFilter($filterChain);
 }
}
0665nobodyさん2012/02/12(日) 19:04:19.10ID:9VDZvfC5
興味持ってブログのチュートリアル一通りやってみたんですけど
基礎がわかる本とかサイトとかないでしょうか
0666nobodyさん2012/02/12(日) 20:00:21.50ID:???
英語の本なら二冊出てる。日本語の本がでる可能性はほとんど無いのでがんばって英語を勉強しような
0667nobodyさん2012/02/12(日) 20:07:22.32ID:???
githubで検索すれば、サンプルソース幾つもあるから、読んで勉強するといいよ。
0668nobodyさん2012/02/12(日) 20:39:49.70ID:???
>>666
英語ですか……学生時代もっと頑張っておくんだったなぁ

>>667
探してみます。ありがとうございます。
0669nobodyさん2012/02/12(日) 20:59:01.29ID:9VDZvfC5
Yii 1.1 Application Development Cookbook
思い切って注文しました。辞書を片手に頑張ります
0670nobodyさん2012/02/12(日) 23:28:33.50ID:???
今日日ネットだけでなんとかならないものなんてないに等しいし、本を買うのはさして意味ないと思うな
0671nobodyさん2012/02/13(月) 00:06:36.07ID:???
書籍には書籍の良さがあるんじゃないかな
0672nobodyさん2012/02/13(月) 01:03:04.20ID:???
紙の匂いとかね。
0673nobodyさん2012/02/13(月) 01:32:52.23ID:???
Kindle無臭
0674nobodyさん2012/02/13(月) 01:37:37.52ID:???
いやいや、チュートリアル終わったなら次はガイド見ろよw
0675nobodyさん2012/02/13(月) 02:13:55.51ID:???
>>674
ガイド、チュートリアルの順にやりました
書き方が悪くて混乱させてしまったようで申し訳ないです
今はyii for beginnerという記事を読んでいますが
他に基礎がまとまってるページなりサイトなりあれば教えて頂きたいです
0676nobodyさん2012/02/13(月) 03:35:40.24ID:???
ktai extension便利だな!
セットアップがちょっと難しかったけど、メールのテンプレート機能で携帯用と使い分けられるのが良い
0677nobodyさん2012/02/13(月) 18:09:25.18ID:???
新バージョンが出たらしい?
0678nobodyさん2012/02/14(火) 00:44:08.18ID:CHG2KmQT
本当だ1.1.10出てるじゃないか
今度は早かったな
0679nobodyさん2012/02/14(火) 01:05:36.74ID:CHG2KmQT
それはそうと、1.1.8でカスタムURLなんつー便利そうなものが追加されてたんだな、知らんかった…
http://www.yiiframework.com/doc/guide/1.1/ja/topics.url#sec-9

翻訳も早くて感謝です
0680nobodyさん2012/02/14(火) 02:33:19.28ID:???
>>679
これってBlogとかでよくある、
ブログタイトルをURLに含めるようなものが簡単に
出来るということだよね?
0681nobodyさん2012/02/14(火) 08:35:59.10ID:???
>>679
便利か?
0682nobodyさん2012/02/14(火) 09:45:04.56ID:???
ざっと読んだけど便利なんじゃね?
二つ以上のパラメータをURLに仕込んでDBに問い合わせてその結果次第で任意のページを返せるしさ
まぁ普通はコントローラ側でこう言う事をやるわけだけどね
0683nobodyさん2012/02/14(火) 09:53:20.39ID:???
クエリパラメータと何が違うんだろ。URL組みたてづらい気がするけど。
SEO対策ってやつ?
0684nobodyさん2012/02/14(火) 15:54:04.76ID:???
既存の仕組みでも、urlManagerのrulesに
 'articles/<title:.+>'=>'article/view',
みたいな感じで設定して、コントローラではtitleの文字列からモデルを検索して引くことができた

>>679の方法を使うと、コントローラの処理部分をルールクラスとしてまとめることが出来て、構造が直感的だし便利じゃね
カスタムURLを使わない人には関係ないと思うが

ちなみに俺は、タイトルみたいなのをユニークにするのは嫌なので、
'articles/<title:.+>/<id:\d+>'=>'article/view',

みたいにして、タイトルはあってもなくても良いようにしてる
0685nobodyさん2012/02/14(火) 18:44:41.95ID:???
結局、その程度でいいよね。
0686nobodyさん2012/02/14(火) 22:23:25.54ID:???
逆に可能性として出来ることを考えついたら良いよね
0687nobodyさん2012/02/14(火) 22:46:01.30ID:???
ああ、そうだね。
まあ個人的にはコントローラ/メソッド/idみたいなのとかを殆どURLに使わないので、
結局>>684氏みたいにルールを書いちゃう。
0688nobodyさん2012/02/15(水) 05:53:55.96ID:jJ6oNY1v
日本の携帯(ガラケー)って一部を除いてJavaScriptに基本的に対応してないけど、
JavaScriptが埋め込まれてるページにアクセスした場合、jsファイルのリクエストはしちゃうのかな?

携帯サイトでListView使おうとしたんだけど、勝手にjqueryがregisterされちゃって、抑止も出来ない作りになってることが分かった
もしrequestされちゃうなら、CClientScriptを継承したクラスでrenderの最後でスクリプトの配列をクリアしちゃおうかなって考えてるんだけど…

あんまりYii関係なくてごめん
0689nobodyさん2012/02/15(水) 12:17:35.98ID:???
フレームワーク自体使ったことが無くても
Yii Frameworkは習得出来ますか?
cakePHPから入ろうと思って
色々調べてるうちにYiiの方が良いように感じました。
もったいないことにcake参考書2つも買っちゃった;;
0690nobodyさん2012/02/15(水) 12:58:09.44ID:???
>>689
Cakeで不便に思うところがなければ捨てるのもったいないし
Cakeで不便に思うところがあっても、Yiiで解消されてないなら乗り換える意味ないよ。
0691nobodyさん2012/02/15(水) 14:13:55.27ID:???
>>689
Yii Framework以外に他のフレームワークを使ったことがないので、Yiiの方が良いかはわかりませんが、
小規模なECサイトを作り上げることができましたので、習得自体は難しくないと思います
学習しながら作っていったのですが、ノンフレームワークでやるより全然簡単にできました

個人的に習得が簡単だと思った理由としては、
 ・Extensionが豊富
 ・構造がシンプルかつ、拡張が簡単にできるようになっている
 ・フレームワークのソースが読みやすい
 ・ガイドが豊富で、日本語で整備されている(APIリファレンスは英語)
 ・JavaScriptとJQueryをあんまり知らなくてもAjaxが使えてしまう(JQueryはちょっと勉強した方が更にいろいろ出来るようになりました)
 ・Giiという仕組みがあるので、コードの土台をDBに合わせて自動で生成してくれる
※もちろんこれらは相対的な評価ではないことに注意して下さい

特に、ガイドを読めば土台のおまじない的なコードの意味(触り方)が分かるのは嬉しかったです(rules, relations, filters, etc...)

しかし、困ったことがあったらフォーラムなどを検索する必要があった場合も多かったので、若干の英語力は必要です
0692nobodyさん2012/02/15(水) 14:43:59.89ID:???
返答ありがとうございます
>>690
今までライブラリとかは使ったりするのですが
ほぼフルスクラッチで書いてばっかりでMVCフレームワーク
を使ったこと無いんですよ・・・
ただ参考書買っちゃったので、機会があればやろうとは思うのですが・・・
>>691
ありがとうございます
学習するならどれがいいのかな?って色々サイト見ていたら
yiiが目に留まったんです。
多少の英語力はあると思うので挑戦してみます。

>>690さん>>691さん
ありがとう!
0693nobodyさん2012/02/15(水) 15:33:52.13ID:???
CakePHPとYiiの両方使ったことがある俺から言えば、
Yiiの方がYii
理由は速さ、思想が優れていること
0694nobodyさん2012/02/15(水) 16:17:53.50ID:???
Cakeはちょっと膨らみすぎだね
0695nobodyさん2012/02/15(水) 20:23:43.02ID:???
Yiiのほうがいいけど、フォーラムとAPIリファレンスを読めるくらいの英語ができないとつらいかもな。
0696nobodyさん2012/02/16(木) 00:39:02.08ID:???
>>688
ここらへん参考になるかもです
http://www.yiiframework.com/forum/index.php/topic/16515-scriptmap-wont-work-when-debug-mode-is-off/page__p__81923__hl__+criptMap#entry81923

あとはCListViewを拡張して
registerClientScript()をうまくオーバーライドして使えば良いんじゃないですか?
0697nobodyさん2012/02/16(木) 06:20:41.52ID:hznOBTcJ
>>696
おお、ありがとう
とりあえずサイズの大きいjquery.jsだけはscriptMapに設定して無効化しようと思う

ところで、Yii::app()->cache->get($id)って、キャッシュがhitした場合でも、
DependentDataが変更されている場合はfalseを返却するんだな
通常get()でfalseが帰ってきたらデータを作りなおしてset()するような処理にしてると思うけど、
その時ちゃんとdelete()してあげないとメモリ上に使われないゴミデータが残ることになってしまうことに気がついた

ということで、こんな感じにするといいと思う
$value = Yii::app()->cache->get($id);
if ($value === false) {
 Yii::app()->cache->delete($id);
 $value = new Data();
 Yii::app()->cache->set($id, $value, $expire, $dependency);
}
expireが短かったり、dependencyを使ってないなら別に問題はないけど
0698nobodyさん2012/02/16(木) 21:59:40.81ID:???
YII_DEBUGがtrueの場合jquery.jsを呼び出し
falseの場合jquery.min.jsを呼び出すので、そこらへん注意してくだいね
0699nobodyさん2012/02/17(金) 00:10:51.42ID:???
DAOで?をつかってバインドするサンプルが載ってるURLって無い?
0700nobodyさん2012/02/17(金) 15:06:04.29ID:???
どういうときにYiiのDAOで「?」使うんですか?
0701nobodyさん2012/02/17(金) 16:37:22.68ID:???
>>700
検索で複雑なsqlが必要なんでARつかうよりDAOの方が便利そうだと思ったから。
パラメータ数も上限するから :id とかでバインドするのが面倒だった。

結局、自己解決して
普通にpdoと同じやり方で出来ました。
0702nobodyさん2012/02/18(土) 21:54:07.39ID:???
久しぶりにyii使って開発してるけどやっぱ効率いいわ
0703nobodyさん2012/02/18(土) 23:01:01.44ID:???
giiがアツイよな
HABTMもうまいこと自動でやってくれたら文句ない
0704nobodyさん2012/02/19(日) 00:30:45.02ID:???
ウィジェットについて詳しく解説してるサイトありませんか?
英語でも構いません。
0705nobodyさん2012/02/19(日) 00:54:03.26ID:???
ウィジェットの何を知りたいのさ
0706nobodyさん2012/02/19(日) 01:00:00.17ID:???
giiで生成したcrudのviewがDBのレコードリストを
ウィジェットを使って表示しているのを見てポカーンです。
ウィジェットの使い方を知りたいです。
0707nobodyさん2012/02/19(日) 01:36:57.26ID:???
ウィジェットの使い方だけじゃ何のウィジェットなのかわからないよ
ちなみにCListViewならこれ見ればわかる
http://www.yiiframework.com/doc/api/1.1/CListView/
0708nobodyさん2012/02/19(日) 01:40:53.67ID:kzCubFZM
APIリファレンス以上はソース見るしかないな
0709nobodyさん2012/02/19(日) 05:06:59.32ID:???
オフィシャルのフォーラムで検索すればある程度出てくるよ
0710nobodyさん2012/02/19(日) 10:33:48.34ID:Np7bOdr0
>>707
CListViewです、ありがとうございます!
0711nobodyさん2012/02/19(日) 10:55:43.37ID:???
これがエスパーの力か
0712nobodyさん2012/02/19(日) 13:36:38.54ID:Np7bOdr0
ウィジェットなんて使わないけどなぁ
自分で書いてる
0713nobodyさん2012/02/19(日) 13:40:38.98ID:Np7bOdr0
>>710
YKかwwwwww
聞いてくれていいんだけど遠慮してる?
0714nobodyさん2012/02/19(日) 13:52:40.38ID:kzCubFZM
ナニコレ珍百景に投稿してくる
0715nobodyさん2012/02/19(日) 14:36:30.21ID:???
なにこの自演
意図が全く見えない
0716nobodyさん2012/02/19(日) 14:40:19.96ID:???
触れんでいい。
0717nobodyさん2012/02/19(日) 14:51:17.56ID:???
自演ではないです。>>707 = >>710が自分で、
自分にyiiを紹介してくれたのが>>713さんです。
0718nobodyさん2012/02/19(日) 14:58:56.30ID:???
クソワロタwwwwwwwwww
同じ社内かよwwwwwwwwww

先輩が>>712書く

先輩、ID同じで>>710が社内の後輩だと気づく

先輩>>713書く
0719nobodyさん2012/02/19(日) 14:59:40.62ID:???
でも日曜に働いてるって会社じゃないのか?
0720nobodyさん2012/02/19(日) 15:07:02.65ID:???
ワロタ
0721nobodyさん2012/02/19(日) 17:03:57.36ID:???
CListView, CGridView, CDetailViewなどは
もともとYiiにはなかったんだけど
これはいいねってなってあとからコアに組み込むことになったんだそうですよ
どうでもいい話ですがw
0722nobodyさん2012/02/19(日) 18:27:35.51ID:???
一部のsave()でbeforeSave()を利用したくない(回避したい)のですが
方法を教えてくださいにゃん
0723nobodyさん2012/02/19(日) 19:13:08.00ID:???
youステートもっちゃいなよ
0724nobodyさん2012/02/19(日) 20:06:55.31ID:???
>>722
scenarioっていう便利な機能があるよ
0725nobodyさん2012/02/19(日) 20:23:12.13ID:???
>>723
state作成いたら成功した!
>>724
新しいscenario選択したらデフォルトのvalidateは利用されない仕組みなのかな
ちょっと試してみる!

二人ありがとYii
0726nobodyさん2012/02/19(日) 21:01:16.48ID:???
scenario選択してもはデフォルトのvalidateルールは有効だよ
ただ、俺はvalidateの切り分け以外にscenarioを使うのはおすすめしないな
なんか前にもこんな話したよね
0727nobodyさん2012/02/19(日) 23:31:59.69ID:???
反則かもしれないがアクション名で振り分けられる
モデルでYii::app()->controller->action->idを使ってさ
あとはプロパティがempty時はこうする、とかさ。いろいろあるさ〜
0728nobodyさん2012/02/19(日) 23:36:20.48ID:???
scenarioをvalidate以外で使うのをおすすめしない理由とは?
0729nobodyさん2012/02/19(日) 23:39:31.37ID:???
state作成とは、具体的にどうしたのか教えてもらえますか?
0730nobodyさん2012/02/20(月) 01:14:34.72ID:???
>>729
modelのclass変数を作成して
それをsave()前に$model->state=falseとかした感じ

beforeSave()の中で$this->stateでifして処理振り分け
0731nobodyさん2012/02/20(月) 02:03:58.18ID:???
>>730
なるほどー。一番良いやり方かもしれないですね。ありがとう。
■ このスレッドは過去ログ倉庫に格納されています