【PHP】Yii Framework
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2010/12/10(金) 00:41:11ID:???公式
http://www.yiiframework.com/
チュートリアル
ttp://www.yiiframework.com/doc/guide/
公式フォーラム
ttp://www.yiiframework.com/forum/index.php?/forum/21-japanese/
0517nobodyさん
2012/01/10(火) 17:02:51.12ID:???変換したり、ファイルに保存したり
0518nobodyさん
2012/01/10(火) 21:51:45.37ID:???$this->render('dummy', null, false, ture);のやつ
0519nobodyさん
2012/01/10(火) 21:52:10.57ID:???0520nobodyさん
2012/01/10(火) 21:54:26.20ID:???print_r($hoge);
ということじゃねーの?
0521nobodyさん
2012/01/10(火) 23:32:07.77ID:???0522nobodyさん
2012/01/10(火) 23:34:37.35ID:???APIリファレンスを見ると、4つめをtrueにするとprocessOutputで後処理されるって書いてる。
で、processOutputを見ると、scriptタグを挿入したり、hiddenフィールドに値を埋め込んだりするみたい。
だから、たぶんrenderPartial単体を画面表示したいときに使うんじゃないかな。
0523nobodyさん
2012/01/11(水) 14:12:56.17ID:???結果受け取ってどうすんのって事例は、CControllerのrenderの中身見ればいい
main.phpにcontent引数として渡して描画してるだろ
0524nobodyさん
2012/01/11(水) 15:24:04.56ID:???どんな具合で処理が流れていっているのかわかりますね
いやぁしかしYiiのAPIはすばらしく見やすい
0525nobodyさん
2012/01/12(木) 08:42:21.68ID:???0526nobodyさん
2012/01/12(木) 13:00:12.98ID:???0529nobodyさん
2012/01/12(木) 15:48:04.55ID:???0530nobodyさん
2012/01/12(木) 16:45:04.41ID:???ユニットテストを難しくする汚染要素を隔離するためにあるのでは?
具体的に言うとこんな感じ。
View(GUI, xml, html, json)
Controller(Session, Request, Form, 画面遷移などWeb独自のデータ)
Model(RDB, KVS)
MとCが分離されることでMはWebスコープから分離され、CはSQLから分離される。
でもこの理屈だとVとCの関係がおかしくなっちゃうね。
CがVにデータを渡すときはリクエストスコープを経由しないで
直に関数の引数で整数や文字列、オブジェクトを渡すべきって話になるから。
0535530
2012/01/12(木) 17:15:53.28ID:???ごめん、誤爆した。
こっちでMVC云々にレスしたつもりだった
PHPでOOP
http://kohada.2ch.net/test/read.cgi/php/1172205352/
0536nobodyさん
2012/01/12(木) 18:37:20.23ID:???0537nobodyさん
2012/01/12(木) 20:22:41.51ID:???0538nobodyさん
2012/01/13(金) 00:04:12.96ID:???0539nobodyさん
2012/01/13(金) 00:19:04.76ID:???RoRとか?
0540nobodyさん
2012/01/13(金) 19:59:17.41ID:???accessRulesやfilterのみ適応して
PHPファイル名そのままで表示させたいです。
action関数を書かないで済む簡単な方法が
あれば教えて頂けませんか?
Yiiの認証を使ったファイル置き場が作りたい感じです。
0541nobodyさん
2012/01/13(金) 20:27:30.80ID:???0542nobodyさん
2012/01/14(土) 00:05:26.00ID:???日本語化コミットしようぜ
0543nobodyさん
2012/01/14(土) 10:02:07.26ID:???0544nobodyさん
2012/01/14(土) 10:25:45.65ID:???urlManagerルーターのaliasでも手間?
'something/<alias>'=>'something/rawdraw'
Class SomethingController ....
{
public function actionRawdraw($alias) {
echo $alias;
}
}
http://foo.org/something/bar.php
0549nobodyさん
2012/01/14(土) 21:04:16.08ID:???ってどういう仕組なの?
スタティックじゃないメソッドをスタティックで呼べるって強すぎない?
0550nobodyさん
2012/01/14(土) 21:57:37.93ID:???0551nobodyさん
2012/01/14(土) 21:59:13.89ID:???call_user_func
0552nobodyさん
2012/01/14(土) 22:57:03.24ID:???0553nobodyさん
2012/01/14(土) 23:07:12.19ID:???0554nobodyさん
2012/01/14(土) 23:32:36.39ID:???0555nobodyさん
2012/01/14(土) 23:51:33.45ID:???0556nobodyさん
2012/01/15(日) 23:03:55.87ID:???見ると勉強になるし、アプリの作り方がわかる。
0560nobodyさん
2012/01/16(月) 19:39:01.84ID:???0561nobodyさん
2012/01/16(月) 19:41:57.11ID:???0562nobodyさん
2012/01/16(月) 22:29:25.13ID:???0563nobodyさん
2012/01/17(火) 14:35:07.52ID:???勉強になってよかったね、で済む話じゃん
0566nobodyさん
2012/01/17(火) 18:16:13.97ID:???まったり行きましょう
0567nobodyさん
2012/01/17(火) 18:19:37.28ID:???0570nobodyさん
2012/01/17(火) 20:51:23.14ID:???0572nobodyさん
2012/01/19(木) 00:28:06.83ID:???checkBoxListで表示(該当部分をチェック)させるのってどうやってやるんだ・・・3日間かかったが挫折した
0573nobodyさん
2012/01/19(木) 00:50:32.42ID:???0574nobodyさん
2012/01/19(木) 01:10:41.70ID:???いやHAS_MANYも試してないけど、多分できない気がする
オブジェクト→checkBoxListに渡す配列への変換を自動でしてくれないんだな
フレームワークなのにこういう重要な部分を手動でしてくれないのかな?
0575nobodyさん
2012/01/19(木) 01:14:25.50ID:???http://www.yiiframework.com/doc/guide/1.1/ja/form.table
これは答えになる?
0576nobodyさん
2012/01/19(木) 05:18:57.24ID:???取得したレコードを元にチェックボックス用の配列を返すメソッドを用意したほうがはやそう。
0577nobodyさん
2012/01/19(木) 19:00:57.37ID:???>>575のやり方+こうやればいいだけじゃないの
$data = array();
foreach($models as $model) {
$data[$model->id] = ''label";
}
>checkBoxListで表示(該当部分をチェック)させるのって
あと、gridviewとか使って各モデルの情報を一行で表してるなら、checkBoxListは妥当ではないと思うな
その場合、1行ずつチェックボックス付ければいいだけじゃね
'CHtml::activeCheckBox($data, "check")',
まあ、やりたいことが分からないよね
0578nobodyさん
2012/01/21(土) 16:42:05.68ID:???・管理用Controllerを作って、そこにアクション押しこむ
・そもそも別にフォルダ作って、ユーザ用と管理用のprotectedを別々に管理する
他にもいろいろ方法あるかな
俺はとりあえず前者で作ってるんだけど、
バグで脆弱性作っちゃったり、セキュリティを考えると後者のほうが良い感じだけど、
同じ処理を持たなきゃいけなかったり無駄が多そうだよね
0579572
2012/01/22(日) 00:44:52.66ID:???ありがとうございます。
やりたいことは、
投稿にMANY_MANYでタグが関連付けられているといったときのケースです。
Post、PostTag、Tag
というモデルがあり、
PostのフォームにcheckBoxListで
あらかじめあるタグリストがチェックボックスでずらーっと並んでいるとき、
投稿のフォームでチェックした複数のタグをPostTagに投稿ID+タグIDを保存する
保存するときは、PostモデルのafterSaveでチェックボックスの配列をforeachして
手動で保存していたのですが、
既存の投稿を編集(アップデート)するときに、関連付けられたタグを
投稿したときと同じようにデフォルトでcheckedを入れたかった
ただ、いろいろ調べたりアドバイスを見るかぎり、
アップデートのときも手動でforeachしてcheckedするしかないようですね。
ありがとうございました!
0580nobodyさん
2012/01/22(日) 18:12:42.38ID:i1iVcXOA用途は違うけど、これがたぶん君が言っている自動化に近いと思う
// postアクションメソッド.
$model = new Post;
if(isset($_POST['Post'])){
try {
$transaction = Yii::app()->db->beginTransaction();
$model->attributes=$_POST['Post'];
foreach($_POST['Post']['tags'] as $tag) {
$postTag = new PostTag();
$postTag->id_post = $model->id;
$postTag->id_tag = $tag;
$postTag->save();
}
$model->save();
$transaction->commit();
} catch(Exception $e) {
$transaction->rollBack();
}
}
// view
echo CHtml::activeCheckBoxList($model, 'tags', CHtml::listData(
Tag::model()->findAll(), 'id', 'name'
));
※インデントは全角スペース、エラー処理はなし、実行してない
こんな感じ?
と、ここまで書いて、下のエクステンション見つけた
http://www.yiiframework.com/extension/esaverelatedbehavior/
俺もいろいろ勉強になった、ありがとう
0581nobodyさん
2012/01/23(月) 03:55:32.99ID:???おつ
MANY_MANYの保存は2つ目のURLのエクステンションでいけるね
アップデートのときにcheckBoxListをcheckedさせるには1つ目のURLにヒントがあった
0582nobodyさん
2012/01/23(月) 19:13:13.51ID:g71C+axW0583nobodyさん
2012/01/24(火) 06:12:58.16ID:???0584nobodyさん
2012/01/24(火) 15:29:19.24ID:7osuj7Qxこれくらいは英語で十分だなって思ってただけど、やっぱり読むスピードが全然違うな
0585nobodyさん
2012/01/25(水) 01:04:42.19ID:PRfu+W52WEBサーバーの処理800msのうち10ms〜20msくらいでrender出来ちゃう
0586nobodyさん
2012/01/25(水) 13:51:38.28ID:???ARとかどこで使うんだあれ。
0587nobodyさん
2012/01/25(水) 13:53:45.77ID:???ローカルではうまくいくのに、さくらインターネットにアップロードすると
トップページは表示されるものの、コントローラなどがInternal Sever Errorになってしまいます。
ローカルの設置場所:
DOCUMENT_ROOT/example.com/
さくらインターネットの設置場所:
DOCUMENT_ROOT/example.com/
(/home/USERNAME/www/example.com/)
上記の「example.com」がアプリケーションのディレクトリ(protectedなどがあるもの)です。
htaccessの内容は、
RewriteEngine on
RewriteBase /example.com
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
こうなっています。
ドキュメントルートからの構成は同じで、
ローカルではちゃんと表示されているんですが・・・
0588nobodyさん
2012/01/25(水) 19:11:55.85ID:???その時はもうindex.phpありでいいやで妥協しましたが
これ何が原因なんでしょうかね。Apacheのバージョン?
0589nobodyさん
2012/01/25(水) 19:25:30.26ID:YwP4y9rdYii全く関係ないじゃん
0590nobodyさん
2012/01/25(水) 19:49:43.53ID:???0591nobodyさん
2012/01/25(水) 20:02:54.58ID:???0592nobodyさん
2012/01/25(水) 20:35:04.64ID:???スペル怪しいけどw
0593587
2012/01/25(水) 21:59:53.64ID:???[Wed Jan 25 21:32:44 2012] [error] [client 66.249.69.201] mod_rewrite: maximum number of internal redirects reached. Assuming configuration error. Use 'RewriteOptions MaxRedirects' to increase the limit if neccessary
ループしているみたいですかね・・・?
ただCakePHPのときもさくらインターネットでは同じエラーが出ていました
http://blog.syuhari.jp/archives/2056
http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=76&forum=2
↑これと同じだと思います。
このときは RewriteBase をいじって解決したので
今回もいろいろいじっているのですが、全然だめです
>>588さん以外にもレンタルサーバーで利用している方いそうですけど、
どうやって解決しているんでしょうかね・・・
0595nobodyさん
2012/01/25(水) 22:25:49.17ID:???ちゃんとレス内容までは見てないけど、単に設定ミスでしょ
Yiiと関係ないからスレチだけど
0596nobodyさん
2012/01/25(水) 22:30:53.35ID:???0598587
2012/01/26(木) 00:53:49.69ID:???そのサーバと同じとこに乗せてエラー出てるの
でYiiが原因か、Yiiに詳しい人ならわかるかなぁと思って・・・すいません
0599nobodyさん
2012/01/26(木) 01:05:58.94ID:???Internal Sever Errorがどういうときに出るのかを調べたほうが良いかも
スペルミスしてない?
とりあえずYiiが原因では無いと思うよ
0600nobodyさん
2012/01/26(木) 07:48:27.99ID:???何得意げになって書いてんの?www
0601nobodyさん
2012/01/26(木) 11:30:37.83ID:???0602587
2012/01/26(木) 11:33:01.61ID:???>>587を見てもらえればわかるようにスペルミスではないはずです。
とりあえずさくらインターネットのスレに行ってみます。
あっちでもスレ違いだって言われそうだけど・・・
ありがとうございました
0603nobodyさん
2012/01/26(木) 12:43:52.75ID:???さくらスタンダードなら>>587の.htaccessの設定でエラーは出ないはず。
>>587のYiiの設定が原因くさいと思うぜ。
>>587が悪いのは、素のYiiをインストールしてデフォルトのloginあたりのurlでも
internal server errorが出るかどうか
(http://something.sakura.ne.jp/example.com/site/login)
を確かめもしないで、自分が「作った」アプリであれこれパニクってる点。
0604nobodyさん
2012/01/26(木) 12:45:17.60ID:???Yiiスレでエラー切り分けを問いたいなら、そういうところをちゃんと書くべし。
0605587
2012/01/26(木) 13:27:32.58ID:???助言のとおり
http://example.sakura.ne.jp/exmple.com/site/login
で見ると正しく表示されました。
原因はドメインでアクセスするときにあるようです。
http://example.com/site/login
このURLでアクセスするとInternal Server Errorになるので。
ドメインでアクセスするときに、htaccessがどう動くかもっと調べてみます。
Yiiが原因ではなさそうなので、退散します!
スレ汚し失礼しました!
0606nobodyさん
2012/01/26(木) 14:46:59.49ID:???/home/ユーザ名/www/example.com
が別ドメインのdocルートだっていう情報を提供せずにいたのが痛いわけだが、
それはともかく、
http://example.com/site/loginでのそのInternal Server Errorは、単純に
.htaccessの
Rewritebaseが
/example.com
になっているからに過ぎないと思うね。
Rewritebaseは/(URLパスルート)じゃなきゃいけないでしょ。そういう場合は。
まあスレ汚しにスレ違いのレスをするのもなんだけどさ。
0608nobodyさん
2012/01/26(木) 14:59:25.18ID:???0609nobodyさん
2012/01/26(木) 15:56:04.19ID:???皆さんは直接ファイルを編集していますか?
それとも別moduleを作成してuser-moduleをオーバーライド
してますか?
0610nobodyさん
2012/01/26(木) 16:06:14.49ID:???0611609
2012/01/26(木) 16:08:47.08ID:???言葉足りなくてすみません
yii-userというuser管理moduleのことでした
http://www.yiiframework.com/extension/yii-user/
0612nobodyさん
2012/01/26(木) 16:10:57.85ID:???出来合のクラスを直接書き換えるというのは愚。
0614nobodyさん
2012/01/26(木) 17:34:05.28ID:???多分yii-userをカスタマイズしていくとわかりますが、けっこう大変ですよ
0615609
2012/01/26(木) 18:02:36.06ID:???やっぱそうなんですか
経験があまり無いので色々試してみようかと思います
別moduleを作成してyii-userをextends
>>613
ユーザの管理画面がすぐ完成するのが便利かと
プロフィール編集とか
0616nobodyさん
2012/01/26(木) 18:14:32.07ID:G7JApHSthttp://symfony.com/doc/2.0/book/http_cache.html
symfony詳しくないけど、ここら辺の機能はないな
■ このスレッドは過去ログ倉庫に格納されています