【PHP】Yii Framework
レス数が950を超えています。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/
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:???0931nobodyさん
2012/05/21(月) 20:44:09.25ID:???0932nobodyさん
2012/05/21(月) 21:49:46.69ID:???0933nobodyさん
2012/05/22(火) 11:18:40.53ID:???プロダクションで使えないならバックヤード側で使ってみるとか
0934nobodyさん
2012/06/01(金) 22:36:34.22ID:???Yiiのモデルはこれらを1つのクラスで実装しますよね。
モデル自体が1つのデータを表してるのに、自身のクラスでfindAll()のように
複数件返す仕組みに違和感が…
DAOのように、データ自体とデータアクセスクラスが分かれてる方がしっくり
来るんですが、どちらが良いとかあるのでしょうか。
またYiiでもDAOクラスが用意されてますが、このクラスを使うときはモデル内で
DAOのコードを書くべきなんですよね?
0935nobodyさん
2012/06/02(土) 12:39:59.43ID:???俺も自身のクラスにfindAllのリストを返すようなメソッドを書くのは違和感を覚えたから、
別のサービスクラスのようなものをつくった。
基本的にmodelの中ではSQLもfindも使わないようにしたほうがしっくりきたよ。
0936nobodyさん
2012/06/03(日) 01:51:53.10ID:yQvIqueC連続投稿かどうかをチェックするロジックを記述する場所で悩んでいます。
過去10分の投稿で、投稿されようとしているPostのIPと同一IPのPostを取得して、
1つでも見つかればNG、nullならOKというものです。
記述する場所として、
コントローラ
・$model->validate()や$model->save()の前
モデル
・rules()に独自のバリデーション関数を定義する(?)
・onBeforeSave()
・onBeforeValidate()
などなどがあると思いますが(他にあれば教えてください)、
どこに記述するのがベストでしょうか?
0937nobodyさん
2012/06/03(日) 02:03:27.88ID:yQvIqueC間違えました
>・onBeforeSave()
>・onBeforeValidate()
・beforeSave()
・beforeValidate()
上記が正しいです
0938nobodyさん
2012/06/04(月) 17:52:20.51ID:???コントローラでそれを呼び出して条件分岐するか
あとはビューで条件分岐して、falseの場合のみフォームを表示させるとか
0939nobodyさん
2012/06/08(金) 04:03:52.70ID:???falseにしてもtrueにしても、その後の処理は実行されない。
$this->redirect('http://example.com', false);
$this->hoge();
hoge()が実行されない。何か勘違いしてますか?
0940nobodyさん
2012/06/08(金) 09:24:17.60ID:???0942nobodyさん
2012/06/10(日) 10:01:06.80ID:???$model2->save()
上記が2つ成功して初めてsave()したいのですが、どうしたらいいでしょうか?
0943nobodyさん
2012/06/10(日) 11:27:02.85ID:???0947nobodyさん
2012/06/13(水) 15:18:45.45ID:???めっちゃ気持ちよく開発できる
CakePHPで作ったシステムもさっさとYiiにしたいけど結構規模大きいので面倒だ
0948nobodyさん
2012/06/13(水) 18:24:24.37ID:???これ参考にすると良いと思います
http://www.yiiframework.com/doc/guide/1.1/ja/database.ar#sec-11
0949nobodyさん
2012/06/16(土) 19:41:32.57ID:???モデルのImageとかぶってエラー起きた
モデルの名前変更するしか無いかな?
0950nobodyさん
2012/06/21(木) 18:03:32.21ID:???0951nobodyさん
2012/06/21(木) 21:01:36.62ID:???0952nobodyさん
2012/06/27(水) 20:16:53.38ID:???配布されてないの?
ダウンロードできるマニュアルってあれに比べると
使い勝手落ちる
多分あれはYiiで作成されているんだと思うが。
0953nobodyさん
2012/06/30(土) 01:06:46.89ID:???全コントローラ・クラスに継承させられるクラスってある?
自分でわざわざMyCControllerつくって
手動でそれを継承させないと無理かな?
0954nobodyさん
2012/07/02(月) 14:07:50.65ID:???今からまた勉強するのもおっくうだがこれを見ると迷う
http://www.google.co.jp/trends/?q=cakephp,+yii,symfony&ctab=0&geo=all&date=all&sort=0
トレンドの伸び率が半端ないわぁ
0955nobodyさん
2012/07/02(月) 23:06:15.50ID:???protected/componentsにController.phpってありません?
それがapp_controller.phpみたいな役割をしてくれます
モデルはないので、自分で作る感じだと思います
0956nobodyさん
2012/07/20(金) 11:38:10.96ID:???英語に不慣れなもんで、無意識に名詞と動詞混同させてしまうんだよね
どちらかに統一しようと思ったけど、どうしようか迷ってる
モデルは名詞でコントローラは動詞?
0957nobodyさん
2012/07/20(金) 19:32:29.20ID:???動詞なのはメソッドだぬ
0958nobodyさん
2012/07/20(金) 19:34:08.42ID:???コントローラーはコントロールをするものであり名詞
0959nobodyさん
2012/07/21(土) 16:41:36.22ID:???>メソッドは動詞
なるほど、サンクス
0960nobodyさん
2012/07/21(土) 17:46:36.46ID:???0961nobodyさん
2012/07/21(土) 18:12:55.14ID:mc4IJPZ4protected/models の下に作ってるんだけど、おかしなことしてる?
ベターな方法があれば教えて欲しい
例えば、プロフィールフォームなどで使う男女のデータを
<?php
class Gender
{
public static $data = array(
array('id'=>0,'name'=>'指定無し'),
array('id'=>1,'name'=>'男性'),
array('id'=>2,'name'=>'女性'),
);
}
というモデルを作って Gender.php として protected/models に保存してる
プロフィールフォームで
echo $form->radioButtonList($profile,'gender_id',
CHtml::listData(Gender::$data, 'id', 'name')
:
:
としてとってこれる
テーブルとして保存する必要が無いようなデータを
DBにアクセスする手間とオーバーヘッドを減らすためにこういう風にしてる
男女のデータ意外に、都道府県とか、職業とか、、、いろんなデータをmodelsの下に入れてる
最初は良い考えだと思ったけど、ちょっとファイル数が多くなってきた(といっても20弱だけど)ので
設計として正しいか不安になったので質問してみました
0962nobodyさん
2012/07/25(水) 08:24:23.35ID:???正規化してDBに入れてもキャッシュしてUser->Gender->nameでもいいと思う。
モデルの数はシステムの規模に比例するから諦めろ
0963nobodyさん
2012/07/30(月) 18:53:39.77ID:jv1g1zQt0964nobodyさん
2012/07/30(月) 21:13:29.54ID:CcejVExF0966nobodyさん
2012/08/04(土) 03:12:01.01ID:rmgfBjt+0967nobodyさん
2012/08/04(土) 03:36:43.31ID:???0968nobodyさん
2012/08/04(土) 03:49:44.18ID:???書籍もでてるし
0969nobodyさん
2012/08/05(日) 12:39:40.82ID:???http://www.slideshare.net/samdark
0970nobodyさん
2012/08/05(日) 18:30:28.91ID:???0971nobodyさん
2012/08/06(月) 00:44:04.95ID:???まあ5.4上で動かしても何ら問題ないと思うけど
0972nobodyさん
2012/08/08(水) 06:57:57.91ID:jQ2fQMzJコントローラの名前と
アクションの名前を設定したいんだけど、
それぞれ共通の $this->pageTitle;って値持ってるよね
どうしたらいいんだろう
0973nobodyさん
2012/08/08(水) 09:55:44.61ID:???みたいなタイトル作りたいってこと?常に固定だったらCController::getPageTitle()拡張して
return Yii::app()->controller->id. ' | '. Yii::app()->action->id. ' | '. $this->_pageTitle;
とか。
あるいはpushPageTitle()でも作って適当なところで$this->_pageTitleにスタックさせるとか。
0974nobodyさん
2012/08/09(木) 16:53:44.99ID:sQlC8OJZcreatedフィールドのような保存したときに自動でタイムスタンプを保存する機能を実装したい場合、
モデルを作る度にbeforeSave()にその処理を記述しないといけないんでしょうか?
0975nobodyさん
2012/08/09(木) 20:13:16.41ID:???ttp://www.yiiframework.com/forum/index.php/topic/15660-yii%e5%88%9d%e5%bf%83%e8%80%85%e3%81%ae%e3%81%9f%e3%82%81%e3%81%ae%e5%9f%ba%e6%9c%ac%e7%9a%84%e3%81%aa%e3%81%93%e3%81%a8%e3%81%be%e3%81%a8%e3%82%81/page__view__findpost__p__89635
0976nobodyさん
2012/08/10(金) 02:49:35.07ID:???CActiveRecordを継承したMyActiveRecordをつくればいいだけの話。
タイムスタンプに関しては、CTimestampBehaviorを検索すれ。
0977nobodyさん
2012/08/11(土) 17:49:21.23ID:???他のフレームワークに対するYiiの利点ってなんだろうな。
CakeやSymfonyに比べると速いっていうのはあるんだがCIやfuelにはその点劣るよね。
反対にそういう軽量FWに比べれば、フルスタックMVCでツールや機能が揃ってる。
バランスがいいといえばそうなんだけどなんか押しが弱い。
レス数が950を超えています。1000を超えると書き込みができなくなります。