【PHP】Yii Framework
レス数が900を超えています。1000を超えると表示できなくなるよ。
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/
0830nobodyさん
2012/03/16(金) 14:32:14.60ID:6mu8dRw70831nobodyさん
2012/03/16(金) 14:50:26.02ID:???0833nobodyさん
2012/03/16(金) 22:55:17.05ID:6mu8dRw70834nobodyさん
2012/03/17(土) 14:56:22.63ID:???0835nobodyさん
2012/03/17(土) 14:57:04.46ID:???0836nobodyさん
2012/03/18(日) 03:19:48.10ID:???0837nobodyさん
2012/03/18(日) 11:22:39.37ID:???0838nobodyさん
2012/03/19(月) 14:11:56.77ID:???自分で書く部分が多かった
0839nobodyさん
2012/03/20(火) 14:59:22.46ID:????Post_page=2
みたいなのを
?page=2
にする方法ってないですかね?
0840839
2012/03/20(火) 15:19:31.75ID:???スレ汚しスミマセン・・・
0842nobodyさん
2012/03/21(水) 05:42:19.48ID:???authenticateとloginが分かれてて
UserIdentityとかもあって
何が何かパッと理解できん。。。
0843nobodyさん
2012/03/21(水) 06:18:13.36ID:???最初はとっつきにくいけど、
わかると、自由に実装できてイイ!よ。
てか、yii-userのソース見てたんだが、
saltもなしにただハッシュしてるだけじゃん・・・
0844nobodyさん
2012/03/21(水) 14:23:37.03ID:???絶対自前実装が必要
ここで実装方法を共有してもいいかもね
0845nobodyさん
2012/03/21(水) 15:19:01.53ID:???デフォルトでは CWebUser はユーザの個人情報を保存するのに、
持続的ストレージとしてセッションを使います。
クッキーベースのログインが有効(CWebUser: :allowAutoLoginがtrue)になっていると、
ユーザの個人情報がクッキーにも保存される可能性があります。
パスワードのような取り扱いに注意を要する個人情報を保存しないよう気をつけてください。
これの意味がよくわからないんだけど・・・
なんでこんな仕様になってるの?
0846nobodyさん
2012/03/21(水) 20:31:26.55ID:???0848nobodyさん
2012/03/22(木) 01:55:04.42ID:???最初からあるLoginForm.phpでできるけど、
他コントローラからユーザ名とパスワードを渡してログインさせる方法はどうやったらいいのか分かる人いる?
0849nobodyさん
2012/03/22(木) 23:05:16.16ID:???これってそもそもフォームで入力しないものをrequireしてる時点で間違っているよね?
0850nobodyさん
2012/03/22(木) 23:55:16.50ID:???LoginFormはモデルだからどのコントローラからでも使えるよ
$model=new LoginForm;
$model->username = 'user';
$model->password = 'password';
if($model->validate())
$model->login();
ログイン処理したいコントローラで、こんな感じにモデルに情報を設定して、ログインできまっせ
答えになってるかな
0853nobodyさん
2012/03/24(土) 09:23:14.59ID:???$model->username = 'user';
$model->password = 'password';
の部分はあくまで例でしょ。
0855nobodyさん
2012/03/24(土) 11:07:54.88ID:???$model->username = $_POST['LoginForm']['username'];
$model->password = $_POST['LoginForm']['password'];
こういうことでしょ? パスワードの部分はソルト付きのハッシュとかだろうけど
0856nobodyさん
2012/03/24(土) 14:13:43.60ID:???0857nobodyさん
2012/03/24(土) 15:42:17.94ID:???0858nobodyさん
2012/03/24(土) 23:35:11.64ID:???いや、モデルのrules()にフォーム入力しないものを入れちゃいかんだろ
自動生成でこうなったのか知らないけど、外せばいいだけ
afterConstruct()とか馬鹿げている。しかもtimestampビヘイビア使ってるのに$this->create_time = time();とか意味不明
0859nobodyさん
2012/03/25(日) 00:01:41.63ID:K3R81r0d>いや、モデルのrules()にフォーム入力しないものを入れちゃいかんだろ
何か不都合でも?
CTimestampBehavior使ってるならcreate_timeの設定はいらないね
それもそのブログに書いてあるようだが
0860nobodyさん
2012/03/25(日) 00:11:13.28ID:K3R81r0dbehaviorの実行がvalidate前に走らないからrulesで弾かれるってことか
この例だとrulesを外すのが正解なんだろうか
なんかエラー処理的にあんまりやりたくないね(behaviorの実装を信じすぎ)
どっちかって言うと、俺だったらrulesは残して、afterConstructでもbeforeValidateでも一旦初期化すると思う
rulesはフォーム入力したデータを検証するかどうかじゃなくて、DBのルールと合わせておくほうが個人的に自然だと思うな
0861nobodyさん
2012/03/25(日) 00:35:49.84ID:???>なんかエラー処理的にあんまりやりたくないね(behaviorの実装を信じすぎ)
これいみわかんないよね、CTimestampBehaviorはどっちにしろvalidateの後に値を設定するんだから
CTimestampBehaviorのソース見るとbeforeSaveで値設定してるからなんだな
俺だったらCTimestampBehaviorは使わないわ
0862nobodyさん
2012/03/25(日) 00:58:06.73ID:???>rulesはフォーム入力したデータを検証するかどうかじゃなくて、DBのルールと合わせておくほうが個人的に自然だと思うな
いや、公式のガイドでrulesにフォームから送られてくるデータ以外は入れるなって書いてあったと思うけど
個人的な意見尊重するならフレームワーク使わないほうがいいと思うけど
もしくはCIみたいなさらに緩いの使うとか。CI使ったことないからわからんけど
0863nobodyさん
2012/03/25(日) 01:21:50.65ID:???そうだったんだ
CTimestampBehaviorの実装もそういう設計思想から来てるからおかしいものではないということか
>個人的な意見尊重するならフレームワーク使わないほうがいいと思うけど
これはどういう意味?フレームワークってYiiのことだよね
使わないと最早開発できない…
0864nobodyさん
2012/03/25(日) 01:29:03.78ID:???フレームワークって
そのフレームワークの思想や慣習にのっとって開発することによって、
スピードや保守性をアップするってのが利点だと思う
0865nobodyさん
2012/03/25(日) 02:06:18.82ID:???Yiiの思想や慣習を否定するつもりはないよ
ユーザ入力されたパラメータ以外はrulesに追加しないっていう記述があることすら知らなかった(見逃してた)
>DBのルールと合わせておくほうが個人的に自然だと思うな
それを知らないで、こんな考えを持ってたのは適切ではないというのは、その通りだと思う
でもなんでユーザ入力以外のパラメータはvalidateしちゃ駄目なんだろう
DBはエラーを返さないけど、設定を抑止したい値とかって普通にあると思うんだけど
0866nobodyさん
2012/03/25(日) 05:24:10.51ID:???0867nobodyさん
2012/03/25(日) 16:51:47.95ID:???>でもなんでユーザ入力以外のパラメータはvalidateしちゃ駄目なんだろう
>DBはエラーを返さないけど、設定を抑止したい値とかって普通にあると思うんだけど
俺もこれ気になる
0868nobodyさん
2012/03/25(日) 21:59:21.09ID:???設計がおかしいんじゃないかな
0869nobodyさん
2012/03/25(日) 22:11:36.38ID:???設計の問題なのかな
0870nobodyさん
2012/03/25(日) 22:23:40.32ID:???0871nobodyさん
2012/03/25(日) 22:28:10.72ID:???なんかそれでいいような気がしてきた
きっとYiiさんもそういう事を言ってるんだよね
0872nobodyさん
2012/03/26(月) 08:35:27.77ID:???無いよね普通。
0875nobodyさん
2012/03/26(月) 12:00:29.81ID:???0876nobodyさん
2012/03/26(月) 13:35:57.93ID:???その値がdraft,publishedのように定義されているとする。
draft状態のPostをpublishedにするシーケンスがあったとして、
ここではstateをpublishedに初期化することになるから、stateがユーザ入力以外のパラメータとなる
publishedに設定するためには条件を満たす必要がある場合、rulesに以下を追加する
array('state','validateState'),
validateStateではpublishedに設定されてる場合に遷移条件の判定を行う
俺はこんな書き方せずにステートマシン使ってるけど。
非ユーザー入力でvalidateしたいパラメータを示したまでということで。
0877nobodyさん
2012/03/26(月) 20:54:44.62ID:???しつこい
0878nobodyさん
2012/03/26(月) 23:42:36.82ID:???>状態とか
↓
>無いのよそれが。あるわけがない。
>つうか、状態とかって具体的にどういうもの?
↓
>>876
↓
>ぐだぐだ言わずして、改善コード書けよ。
>しつこい
0879nobodyさん
2012/03/27(火) 00:21:26.38ID:???なお、俺は>>874でも>>877でもない。
0880nobodyさん
2012/03/27(火) 00:33:01.98ID:???0881nobodyさん
2012/03/27(火) 00:36:55.69ID:???つまり>>879は>>874でも>>877でも無くて>>873だってこと?
じゃあ>>874と>>877は同一人物なの?それとも>>873と一緒で別人なの?
0882nobodyさん
2012/03/27(火) 00:48:34.18ID:???IDが常に出るピザスレなんて超平和だぞ
0883nobodyさん
2012/03/27(火) 01:27:08.19ID:???0884nobodyさん
2012/03/27(火) 01:58:53.15ID:60lORSlO0885nobodyさん
2012/03/27(火) 05:07:35.41ID:???ムズすぎwwwwwwwwwwwww
0887nobodyさん
2012/03/27(火) 17:39:36.91ID:???前にここで話してたhash saltが実装されてるみたいね
0888nobodyさん
2012/03/28(水) 14:15:15.24ID:???0889nobodyさん
2012/03/29(木) 13:22:42.75ID:???名前はZiiとかですか?
0890nobodyさん
2012/03/30(金) 00:29:48.19ID:???0891nobodyさん
2012/04/01(日) 10:32:24.28ID:???0892nobodyさん
2012/04/04(水) 12:37:01.66ID:???0893nobodyさん
2012/04/09(月) 06:27:33.53ID:???public function actionTest()
{
$this->render('test');
}
ってわざわざrenderさせないとだめ?
0894nobodyさん
2012/04/09(月) 12:01:00.15ID:???0895nobodyさん
2012/04/09(月) 12:55:15.33ID:???Cakeは勝手にレンダリングされるからね。
0896nobodyさん
2012/04/09(月) 15:33:20.04ID:???filter書くしかなかろうな
0897nobodyさん
2012/04/09(月) 17:52:13.68ID:???The earliest possible 2.0 alpha release may be in March 2012, but we cannot guarantee it.
2.0の開発は難航してるのかな?
早く名前空間使いたい・・・
0898nobodyさん
2012/04/12(木) 02:58:11.05ID:???0899nobodyさん
2012/04/22(日) 07:16:48.12ID:???毎回データを出力するときは(入力の際にサニタイズしていない場合は)↑のようにして
出力するデータ毎にCHtml::encode()をしないといけないのかな?
CHtml::encode($model)
みたいなことして全部HTMLの特殊文字をエンコードできる方法ない?
0900nobodyさん
2012/05/01(火) 23:02:27.37ID:???renderPartial($header);
renderPartial($body);
renderPartial($footer);
とか書くしかないかな?
個人的にはmain.phpみたく1つのテンプレートに部分部分を割り当てたいのだけれど
毎回こんな記述する人も居ないだろうし纏めてしまいたい
0901nobodyさん
2012/05/01(火) 23:13:48.28ID:???renderの呼び出し先のviewで例えばtemplete.phpを呼んで
templete.phpの内容が、
renderPartial($header);
renderPartial($body);
renderPartial($footer);
であったとすると、複数コントローラのviewで同じこと書くのは面倒なので
このテンプレを共有したいって意味です
0902nobodyさん
2012/05/02(水) 07:05:10.42ID:7m1s++/P0904nobodyさん
2012/05/02(水) 20:23:04.92ID:???0906nobodyさん
2012/05/03(木) 17:35:36.08ID:???あらゆるコントローラで同じloadModelがあると気持ち悪いのでどっかにまとめたいんだけど、どうしたらいい?
loadModelだけじゃなくて共通のactionをどっかにまとめて共有したい
Actions code reuse with CAction
http://www.yiiframework.com/wiki/170/actions-code-reuse-with-caction/
こういう記事があったけど、Webでアクセスするアクションの話みたいで、
単に各コントローラでの共通関数の話ではなさそう
($this->loadModel($id)みたいに別関数からアクセスしたい)
0907nobodyさん
2012/05/03(木) 18:48:57.55ID:???共通controller.phpにloadmodelを書いて
それぞれのcontrolelrから利用すれば良いんじゃないかな?
0908nobodyさん
2012/05/03(木) 23:06:16.44ID:???これ参考にするといい
http://www.yiiframework.com/extension/crudactions/
0909nobodyさん
2012/05/05(土) 17:58:57.55ID:???共通controller.phpってなんでしょ??
>>908
それだと$this->でアクセスできないような・・・
0910nobodyさん
2012/05/06(日) 00:28:26.16ID:???0911nobodyさん
2012/05/07(月) 22:04:44.22ID:???あれこれになんの意味があんの?
0913nobodyさん
2012/05/08(火) 16:04:33.53ID:???<?php
class Gender
{
public static $data = array(
//array('id'=>0,'name'=>'指定無し'),
array('id'=>1,'name'=>'男性'),
array('id'=>2,'name'=>'女性'),
);
}
のようにモデルで定義してるんだけど、必要ないかな?
Gender::$dataでradioButtonListとかでも利用できるし便利だと個人的に思ってるけど
0914nobodyさん
2012/05/10(木) 14:44:48.26ID:???乗り換えてオススメなことってある?
0915914
2012/05/10(木) 14:45:21.73ID:???0916nobodyさん
2012/05/10(木) 16:12:46.44ID:???英語力問題ないなら自分で触って確かめた方が早い
0917nobodyさん
2012/05/10(木) 16:26:48.49ID:???0918nobodyさん
2012/05/10(木) 21:13:32.86ID:???0919nobodyさん
2012/05/10(木) 22:24:01.18ID:???0920nobodyさん
2012/05/11(金) 17:17:26.53ID:???ユーザーテーブルに紐付いたプロフィールテーブルに保存されている
ユーザーのプロフィール写真とか
どこでも使用されそうなデータって毎回DBにアクセスするのは億劫ですけどどうやってます?
今は
Yii::app()->user->user_name
Yii::app()->user->profile_image
のように保存してますが、
これから引き廻したいデータが増えてもここに保存していったらいいですかね?
0921nobodyさん
2012/05/11(金) 20:31:24.19ID:???0922nobodyさん
2012/05/12(土) 03:21:06.83ID:???トップページで
ようこそ◯◯さん!
って表示したいとき、
Yii::app()->user->user_name
に保存してればDBのアクセス無しですけど、
上記のように保存していないならトップページ表示する毎にDBにアクセスすることになりますよね?
0923nobodyさん
2012/05/12(土) 03:44:01.82ID:???0924nobodyさん
2012/05/12(土) 10:25:54.94ID:???0926nobodyさん
2012/05/13(日) 20:35:47.46ID:???class PostController extends CController {
actionCamelCase(){}
}
だと
/post/CamelCase
になる
/post/camel_case
こうしたい
actionCamel_Case(){} //これじゃ無理
0928nobodyさん
2012/05/14(月) 19:52:05.55ID:???最初こういうスペース開けないコーディングにすげえ違和感感じでどうしようかと思ったけど
最近見慣れてきたわ
0929nobodyさん
2012/05/14(月) 20:37:37.30ID:???逆にスペースがあるほうがキモいレベル
0930nobodyさん
2012/05/15(火) 14:38:30.64ID:???レス数が900を超えています。1000を超えると表示できなくなるよ。