トップページ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/
0588nobodyさん2012/01/25(水) 19:11:55.85ID:???
>>587さんと全く同じことではまったことがあります
その時はもうindex.phpありでいいやで妥協しましたが
これ何が原因なんでしょうかね。Apacheのバージョン?
0589nobodyさん2012/01/25(水) 19:25:30.26ID:YwP4y9rd
>>587
Yii全く関係ないじゃん
0590nobodyさん2012/01/25(水) 19:49:43.53ID:???
ちょっとでも調べてれば、Apacheのバージョンとか、トンチンカンな考えはしないはず。
0591nobodyさん2012/01/25(水) 20:02:54.58ID:???
共用サーバだと変更する必要があるってばっちゃが言ってた。
0592nobodyさん2012/01/25(水) 20:35:04.64ID:???
AllowOverride だな
スペル怪しいけどw
05935872012/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さん以外にもレンタルサーバーで利用している方いそうですけど、
どうやって解決しているんでしょうかね・・・
05945872012/01/25(水) 22:01:16.56ID:???
>>592
AllowOverrideは大丈夫でした
単純なリダイレクトの記述をして動いているのを確認しました
0595nobodyさん2012/01/25(水) 22:25:49.17ID:???
だいぶ前にxreaでためしにやってたけど、普通にできてたよ
ちゃんとレス内容までは見てないけど、単に設定ミスでしょ
Yiiと関係ないからスレチだけど
0596nobodyさん2012/01/25(水) 22:30:53.35ID:???
単にhtaccessが使えない環境なだけなんじゃないの?
0597nobodyさん2012/01/25(水) 23:58:53.63ID:???
>>593
さくらのスレかApacheのスレ行けよ。
なんでここだ、アホか。
05985872012/01/26(木) 00:53:49.69ID:???
他のフレームワークはhtaccessでRewriteしてURLの変換がうまくいっているんですが、
そのサーバと同じとこに乗せてエラー出てるの
でYiiが原因か、Yiiに詳しい人ならわかるかなぁと思って・・・すいません
0599nobodyさん2012/01/26(木) 01:05:58.94ID:???
>>598
Internal Sever Errorがどういうときに出るのかを調べたほうが良いかも
スペルミスしてない?
とりあえずYiiが原因では無いと思うよ
0600nobodyさん2012/01/26(木) 07:48:27.99ID:???
リダイレクトループになってるって書いてるじゃん。
何得意げになって書いてんの?www
0601nobodyさん2012/01/26(木) 11:30:37.83ID:???
何得意げになって書いてんの?www
06025872012/01/26(木) 11:33:01.61ID:???
>>599
>>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のバージョンも書いてない点だな。
Yiiスレでエラー切り分けを問いたいなら、そういうところをちゃんと書くべし。
06055872012/01/26(木) 13:27:32.58ID:???
>>603
助言のとおり
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パスルート)じゃなきゃいけないでしょ。そういう場合は。
まあスレ汚しにスレ違いのレスをするのもなんだけどさ。
06075872012/01/26(木) 14:57:46.28ID:???
>>606
イケタアアアアアアアアアア
ンギモヂイィッィ
0608nobodyさん2012/01/26(木) 14:59:25.18ID:???
いきなり豹変すんなやwワロタ
0609nobodyさん2012/01/26(木) 15:56:04.19ID:???
user-moduleを利用する際等、moduleに手を加える際に
皆さんは直接ファイルを編集していますか?

それとも別moduleを作成してuser-moduleをオーバーライド
してますか?
0610nobodyさん2012/01/26(木) 16:06:14.49ID:???
user-moduleってなに?。意味が不正確でとれないよ。
06116092012/01/26(木) 16:08:47.08ID:???
>>610
言葉足りなくてすみません
yii-userというuser管理moduleのことでした
http://www.yiiframework.com/extension/yii-user/
0612nobodyさん2012/01/26(木) 16:10:57.85ID:???
当然、extends。
出来合のクラスを直接書き換えるというのは愚。
0613nobodyさん2012/01/26(木) 17:09:42.61ID:???
>>611
このextentionって便利なの?
前導入したけど良さがわからなかったな
0614nobodyさん2012/01/26(木) 17:34:05.28ID:???
自分はyii-userをお手本にして、新しくuserモジュールを作りました
多分yii-userをカスタマイズしていくとわかりますが、けっこう大変ですよ
06156092012/01/26(木) 18:02:36.06ID:???
>>612
やっぱそうなんですか
経験があまり無いので色々試してみようかと思います

別moduleを作成してyii-userをextends

>>613
ユーザの管理画面がすぐ完成するのが便利かと
プロフィール編集とか
0616nobodyさん2012/01/26(木) 18:14:32.07ID:G7JApHSt
>>582
http://symfony.com/doc/2.0/book/http_cache.html
symfony詳しくないけど、ここら辺の機能はないな
06176092012/01/26(木) 21:24:35.58ID:???
うーん、moduleの全てをextendsするのは
難しいものですね

module内でextendsしたmodule名が呼ばれていたり
結局moduleを直に書き換えているのとあまり変わらないような

この辺のノウハウというかヒントになりそうな情報があったら
教えて頂けるとありがたいです
0618nobodyさん2012/01/27(金) 00:07:11.83ID:???
>>617
困った部分を、もう少し具体的に教えてもらえます?
06196092012/01/27(金) 00:25:22.09ID:???
>>618
yii-user moduleを利用してます。
modules/user/UserModule.phpをYii::importしてから、modules/user/UserextModule.phpで
extendsしました。

これだとURLでindex.php?r=userext/profileを開くとmodelでエラーが出ます。
Yii::app()->getModule('user')->tableUsersのobjectが存在しないということらしいのです。

Yii::app()->getModule('userext')->tableUsersと書き換えれば通りますが、
結局元のmodelを書き換えてしまうことになります。

何かやり方がマズいようでしたら、こうした場合の良い方法があればヒントを頂きたく。
0620nobodyさん2012/01/27(金) 00:57:23.52ID:???
protected/config/main.phpで
'modules' => array('user' => array('id' => 'userext'...ではダメですか?
0621nobodyさん2012/01/27(金) 03:18:59.10ID:???
コアでないmoduleを元ファイルと別にわざわざextendするメリットが思い浮かばない。
自分の使いやすいように、moduleファイルを普通に修正すればよいと思う。俺はそうしてる。
0622nobodyさん2012/01/27(金) 05:28:21.85ID:???
経験談ですが、ターゲットが日本人向けのサイトなら
yii-userの特定のクラスをextendsしようが
ファイルの中身を直接修正しようが、リスクはかなり大きいと思いますよ?

あと、ファイルの中身を直接修正するということは
yii-userがバージョンアップしても
それを使えない、もしくはextendsするより修正のリスクが大幅に上がることを考慮しないといけませんよ
0623nobodyさん2012/01/27(金) 09:01:08.42ID:???
使い捨て、あるいはコードを貰ってその後は独自モジュールとして
自分が育てるという>>621な人も、>>612,>>622の考え方に立った上で
独自拡張していると考えたい。

とはいえ、結構ハードコーディングがあったりして>>617のように
>結局moduleを直に書き換えているのとあまり変わらないような
ということがあるのもわかる。

というわけで俺的方針。

(1)extends基本。
(2)「moduleを直に書き換え」と同じ手間っぽくて、かつ2,3の修正で済むなら
直接書き換えて、diffの履歴をとっておく。
(3)出力系の修正なら、置換用のラッパー作ってそれで対応。
(4)かなり変更が必要で、それでもそのモジュールを使い切りたい(バージョンアップにも
対応したい)場合=>(a)対象モジュールのクラス名称を全部かえて(シェルスクリプトを書く)
その後(b)自分の拡張モジュールでその対象モジュールクラス名を使う。

(4)で対応が出来ないようなら、使うのやめる。そこまで拡張が難しいなら今後も悩まされるはず。

ところで、>>609さん。>>619のケースなら、>>620さんの指摘でいけるんじゃないだろうか。
loadUserメソッドがわざわざモデルの変更を想定しているんだから。
06246092012/01/27(金) 14:10:16.57ID:???
>>620
試してみましたが、挙動が変わらなかったです。
元々yii-userが考慮していないpropertyなのかもしれません。

色々方法やサンプルを探してみましたが、
moduleのextendsに関するものはなかなか出てこないです。

Yiiで制作されているオープンソースソフトウェアで
modulesのextendsしているものがあるか探してみようと思います。

無ければ、
>>623のdiffで取るやり方が正道なのかもしれませんね。
yii-userはバージョンアップの頻繁なmoduleのため、
直接編集すると大変そうですが。

>>622
>yii-userの特定のクラスをextendsしようが
>ファイルの中身を直接修正しようが、リスクはかなり大きいと思いますよ?

これはそもそもyii-userが日本向けサイトに向いてない作りという意味ですか?
0625nobodyさん2012/01/27(金) 16:47:50.95ID:???
>>624
class ProfileController extends Controller
public function loadUser()
{
if($this->_model===null)
{
if(Yii::app()->user->id)
$this->_model=Yii::app()->controller->module->user();

なんだから考慮してると思うんだけど。
0626nobodyさん2012/01/27(金) 20:34:27.33ID:ujQCEknc
>>623
(4)で対応が出来ないようなら、アップデートを諦めるじゃなくて?
0627nobodyさん2012/01/27(金) 23:50:45.19ID:???
ちなみにyii-userのmessagesのjaはここで入手できます
http://code.google.com/p/yii-user/source/browse/#svn%2Ftrunk%2Fmodules%2Fuser%2Fmessages%2Fja
オフィシャルからのDLでは現在r107までのリビジョンなので、jaファイルは入ってません

あとここで少しデモれますよ
http://yii-user.2mx.org/
ユーザー登録する際は、アクティベーションのメールはfalseになっているので
ユーザ登録の流れなども確認できます
ログインの際に「ユーザ名が正しくありません」とか
「パスワードが間違っています」とか出るのはかなり痛いですがw
0628nobodyさん2012/01/28(土) 00:18:12.39ID:???
>>627
あんた誰よ
0629nobodyさん2012/01/28(土) 00:24:14.21ID:???
>>628
通りすがりのものです
0630nobodyさん2012/01/28(土) 00:24:59.90ID:???
www
0631nobodyさん2012/01/28(土) 12:29:44.71ID:???
CListViewが勝手にjqueryとjquery BBQ(?)を<head>に書きこんでくれるんだけど、
これをやめさせる方法ない?
今は無理矢理extendsして、
public function registerClientScript() {}
と空のfunctionをoverrideした
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氏みたいにルールを書いちゃう。
■ このスレッドは過去ログ倉庫に格納されています