【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/
0391nobodyさん
2011/12/27(火) 01:17:16.70ID:aNrDGmfk一緒に仕事してると
変な変数名や関数名を付けるので迷惑だな。
頑張ってなんちゃって英語化してるみたいだが
文法がめちゃくちゃ。
0392nobodyさん
2011/12/27(火) 01:24:51.39ID:???0393nobodyさん
2011/12/27(火) 09:56:27.62ID:???Internal Server Error
include(Test.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory
というエラーがでてしまいます
demoのファイルの中を見ながらここまでは書けたのですがmodelの読み込みがわかりません
コントローラ内からモデルを読み込んで$strの値を表示させたいのですがアドバイスお願いします
■protected/controllers/TestController.php
class TestController extends CController
{
public function actionIndex()
{
$test = new Test();
echo $test->str;
}
}
■protected/models/Test.php
<?php
class Test extends CActiveRecord
{
public $str = "サンプルテキスト";
public static function model($className=__CLASS__)
{
return parent::model($className);
}
}
0394nobodyさん
2011/12/27(火) 10:19:16.88ID:???ファイルがないってエラーだし、環境問題じゃないのか?
echoの1行コメントアウトしてもエラー出るんじゃねえの
0395395
2011/12/27(火) 10:38:37.00ID:???すいませんファイルあげたのでみてもらえませんか?
http://www1.axfc.net/uploader/Sc/so/304365.zip
コードはframeworkフォルダがトップのindex.phpと同じ位置にあるものとして書いてます
0396395
2011/12/27(火) 14:20:13.96ID:???ここでつまずくと後々キツイのでやっぱYiiは選択肢からはずします
0397nobodyさん
2011/12/27(火) 15:07:17.51ID:???CActiveRecordではなく、CFormModelを継承してみてください
CActiveRecordとCFormModelの違いについてはここらが参考になるかもしれません
http://www.yiiframework.com/doc/guide/1.1/ja/basics.model
http://www.yiiframework.com/doc/guide/1.1/ja/form.model
protected/config/main.phpにてデータベースをしっかり設定していて
かつ、データベースにtestというテーブルがあって
データの取得、追加、更新、削除などを行う場合は、CActiveRecordを継承してみてください
その場合はtableNameメソッドにて、テーブル名を記述する必要があります
アクティブレコードに関しては以下が参考になりますよ
http://www.yiiframework.com/doc/guide/1.1/ja/database.ar
0399nobodyさん
2011/12/27(火) 15:18:26.04ID:???モデルクラスとデーブル名が一致しない場合のみで、いいかもしれないですね。失礼しました。
0400395
2011/12/27(火) 16:30:18.42ID:???ただパスを修正したらエラーになるのが原因がよくわかりません
サーバを再起動するとエラーが消えます
Yiiに必要なapcやmemcacheの影響でこうなるのでしょうかね
よくわかりませんがこのへんを気をつけて学びたいと思います
0401nobodyさん
2011/12/27(火) 16:42:02.52ID:???0402nobodyさん
2011/12/27(火) 16:43:28.83ID:???あとyiiはapcなどが必須ではなく、「利用できる」だけですので、使わなくても特に問題ありません
0403395
2011/12/27(火) 16:50:11.11ID:???たとえばframeworkとprotectedはドキュメントルートに置きたくないので
以下のようにパス修正・ファイルの移動してるんですがこの後にエラーがでます。
サーバを再起動すると直ったり直らなかったりします。
直らないときは1から同じものを作ったら直ります
エラーが出たら、エラーが出る直前でecho 1;exit;してブラウザで閲覧後にこのコードを消すと別のエラーが発生したりと原因も良く分からないです
/aaa/bbb/framework
/aaa/bbb/protected
/aaa/bbb/protected/config/main.php
■エントリスクリプト
require_once(dirname(__FILE__).'/../framework/yii.php');
$configFile = dirname(__FILE__).'/../protected/config/main.php';
Yii::createWebApplication($configFile)->run();
■config/main.php
<?php
return array(
'basePath' => '/aaa/bbb/protected',
);
0404nobodyさん
2011/12/27(火) 18:53:48.00ID:???相対で指定したファイルパスがうまく引けない原因がわからない、とかって
別にyiiだから起きてる問題ってわけじゃないしなぁ
エラーをはいた処理が読もうとしたパス文字列と、実際に参照したい対象のフルパス
両方を取得して比較してみりゃいいだけの話だと思うけれど
それに問題がなければ権限じゃね
0405395
2011/12/27(火) 19:15:18.13ID:???相対パスは合ってますしパスが絶対パスでも症状は同じになります
はやり日本語情報が少ないので日本で流行ってない状況での初心者の使用は控えるべきかもしれませんね
0406nobodyさん
2011/12/27(火) 19:19:07.53ID:???使える人だけが使って楽出来ればいいのさ
0407nobodyさん
2011/12/27(火) 19:42:24.58ID:???'basePath' => dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
で良い気がしますが、どうですか?一応これはデフォルトの値です
あと、Yiiを触りたてなら
まずドキュメントルートにframework, protectedを設置して
一つずつ、置き場所を変えるなり、設定を変えるなりして、やっていったほうがいいかもしれないですね
順々にやっていくと、どこでエラーが出るのか把握できますし
0408nobodyさん
2011/12/28(水) 16:42:40.02ID:???大文字小文字が間違ってるとかさ
0409nobodyさん
2011/12/28(水) 18:24:47.59ID:???0410nobodyさん
2011/12/28(水) 18:44:54.92ID:???0411nobodyさん
2011/12/28(水) 19:34:38.42ID:???答えたい人が答えるだけだし
0412nobodyさん
2011/12/28(水) 20:03:03.42ID:???0415nobodyさん
2011/12/28(水) 23:54:45.28ID:???0416nobodyさん
2011/12/29(木) 00:08:59.59ID:???0417nobodyさん
2011/12/29(木) 10:37:55.51ID:???としたときに
views/layouts/main.php内に<?php echo $title;?>と書いても表示できなくて
views/site/index.php内に<?php echo $title;?>と書いたら表示できました
layoutsないのテンプレートに表示させるにはどのように書くのでしょうか?
0418nobodyさん
2011/12/29(木) 13:18:16.60ID:???Yiiは本職じゃない俺が回答するのもなんだけど。
その症状から分かることはキャッシュの影響だよ。
鯖を再起動して直るのはそういう事。
もしくはclearstatcacheを使うか。
何でこうも他人を煽ることしかできない中途半端な知識を持ってる人が多いんだろうねこのスレ。
0419nobodyさん
2011/12/29(木) 14:46:38.92ID:???にしても自分も最後に煽らんでもw
0420nobodyさん
2011/12/29(木) 15:12:12.42ID:???間違っていたことを確認できるので、知識の向上になりますよ
>>417
$this->renderPartial()を確認してみてください
http://www.yiiframework.com/doc/api/1.1/CController/#renderPartial-detail
0421nobodyさん
2011/12/29(木) 20:59:54.03ID:???0422nobodyさん
2011/12/29(木) 22:40:57.55ID:???大丈夫ですか?
全然そんなことないですよ。むしろどんどん発言していってください
今年中には1,1.9リリースしなさそうですねー
1.2や2.0もどんなものになるのか楽しみです!良いお年を。
0423nobodyさん
2011/12/30(金) 00:47:39.93ID:???0424nobodyさん
2011/12/30(金) 14:05:49.06ID:???0425nobodyさん
2011/12/30(金) 17:27:38.61ID:???0426nobodyさん
2012/01/01(日) 21:08:25.48ID:???0427nobodyさん
2012/01/01(日) 21:11:26.58ID:iI9nxYID英語の分からない奴にコードを欠かすな。
変な変数名・関数名を付けてむっちゃくちゃ。
0428nobodyさん
2012/01/01(日) 21:13:43.14ID:???$ichijikangotonijikkousurunaiyou = time();
0430nobodyさん
2012/01/02(月) 00:05:34.96ID:???あれここなんのスレ?
0431nobodyさん
2012/01/02(月) 00:17:33.88ID:???それはあけおめの予感・・・!
0432nobodyさん
2012/01/02(月) 01:26:16.76ID:EvQxdFqrまさにそれに近い感じ。
付け焼刃の英語で日本語を翻訳して並べてる
だけだから無茶苦茶。
スパゲッティーコードの出来る原因は
英語の出来ないカスがコーディングするからだと確認したよ。
恥を知れ。お前とお前。
0434nobodyさん
2012/01/02(月) 10:30:41.30ID:???0435nobodyさん
2012/01/02(月) 10:30:48.26ID:EvQxdFqrYiiを使うな。という話さ。
0437nobodyさん
2012/01/02(月) 11:09:13.91ID:???0438nobodyさん
2012/01/02(月) 11:47:15.83ID:EvQxdFqr鍵を差して運転する事しか出来ない人は馬鹿です。
0439nobodyさん
2012/01/02(月) 12:52:13.15ID:???それと平行して2.0を開発している雰囲気
あと2.0はPHP5.3以降になる予定だそうです
1.1.9はリレーション周りの強化が主で、これといった新しい機能はありませんでしたねぇ
0440nobodyさん
2012/01/02(月) 13:34:18.36ID:???0441nobodyさん
2012/01/02(月) 14:05:39.75ID:???0442nobodyさん
2012/01/02(月) 15:34:42.08ID:???0443nobodyさん
2012/01/02(月) 23:01:43.96ID:4fhe3V6D0444nobodyさん
2012/01/02(月) 23:30:16.91ID:???詳しくはマニュアル
0445nobodyさん
2012/01/04(水) 17:50:03.95ID:???保存するとき、フォームからの値から関連したDBに自動で格納してくれたりする?
0446nobodyさん
2012/01/05(木) 02:09:13.94ID:???詳しくはマニュアル
0447nobodyさん
2012/01/05(木) 14:53:06.86ID:???これですかね?
http://www.yiiframework.com/wiki/19/how-to-use-a-single-form-to-collect-data-for-two-or-more-models/
0449nobodyさん
2012/01/05(木) 15:05:44.58ID:???0450nobodyさん
2012/01/05(木) 15:49:18.16ID:???他のフレームワークの例はあるの?
0451nobodyさん
2012/01/05(木) 15:50:42.39ID:???0452nobodyさん
2012/01/05(木) 15:57:33.66ID:???自分も自動よりYiiのWikiに載ってる感じで、分けて保存するほうが扱いやすいですね
0453nobodyさん
2012/01/05(木) 18:50:18.06ID:???<select name="Post[prefecture_id]">
<option value="" selected="">地域名</option>
<optgroup label="北海道">
<option value="北海道">北海道</option>
</optgroup>
<optgroup label="東北">
<option value="青森県">青森県</option>
<option value="青森県">岩手県</option>
<option value="青森県">宮城県</option>
:
:
↑こういうdropDownListを返すにはどうしたらいい?
<?php echo $form->dropDownList($model,'prefecture_id',
CHtml::listData(Prefecture::model()->findAll(), 'id', 'name')); ?>
<optgroup>が無い単純なdropDownListなら上記でいけるんだけど、
これが入ることでどう実装していいか悩んでる
0454nobodyさん
2012/01/06(金) 00:10:08.19ID:???グループ毎にoptionタグをfor文とかで作るしか思いつかない
0455nobodyさん
2012/01/06(金) 00:38:14.96ID:???http://www.yiiframework.com/forum/index.php?/topic/6903-how-can-i-generate-a-select-list-with-optgroup/
0456nobodyさん
2012/01/06(金) 01:52:04.52ID:???{
$groupLists=array(
array('id'=>'1', 'name'=>'北海道地方'),
array('id'=>'2,3,4,5,6,7', 'name'=>'東北地方'),
array('id'=>'8,9,10,11,12,13,14', 'name'=>'関東地方'),
array('id'=>'15,16,17,18,19,20,21,22,23', 'name'=>'中部地方'),
array('id'=>'24,25,26,27,28,29,30', 'name'=>'近畿地方'),
array('id'=>'31,32,33,34,35', 'name'=>'中国地方'),
array('id'=>'36,37,38,39', 'name'=>'四国地方'),
array('id'=>'40,41,42,43,44,45,46,47', 'name'=>'九州地方'),
array('id'=>'48', 'name'=>'その他'),
);
0457nobodyさん
2012/01/06(金) 01:53:00.12ID:???$prefs=$this->findAll();
$options=array();
foreach ($prefs as $pref)
{
$group='';
foreach ($groupLists as $groupList)
{
$groupIds=explode(',', $groupList['id']);
foreach ($groupIds as $groupId) {
if ($groupId == $pref['id']) {
$group=$groupList['name'];
}
}
}
$options[]=array(
'id'=>$pref['id'],
'name'=>$pref['name'],
'group'=>$group,
);
}
return $options;
}
0458nobodyさん
2012/01/06(金) 01:56:14.41ID:???ビューで
<?php echo $form->dropDownList($model,'prefecture_id',
CHtml::listData(Prefecture::model()->getOptions(), 'id', 'name', 'group')); ?>
のようにしてgetする
一応これでおkだったが、
リファクタリングしてないし、Yii初心者なので設計にも問題あるかもしれん
0459nobodyさん
2012/01/06(金) 14:46:56.13ID:???0460nobodyさん
2012/01/06(金) 15:04:54.05ID:???0461nobodyさん
2012/01/06(金) 15:07:41.93ID:???0462nobodyさん
2012/01/06(金) 15:10:50.22ID:???http://www.yiiframework.com/forum/index.php?/forum/21-japanese/
0463nobodyさん
2012/01/06(金) 15:14:12.79ID:???0464nobodyさん
2012/01/06(金) 17:14:37.32ID:???0465nobodyさん
2012/01/06(金) 17:30:59.01ID:???0466nobodyさん
2012/01/06(金) 17:37:17.77ID:???0467nobodyさん
2012/01/06(金) 19:09:20.76ID:???0468nobodyさん
2012/01/06(金) 22:49:00.48ID:???ローカルにリファレンス落としといた方がいいな
0469nobodyさん
2012/01/07(土) 11:11:31.49ID:???でもWEBのみたいにインクリメンタルサーチできるリファレンスだと良いんですけど
無いですね
0470nobodyさん
2012/01/07(土) 11:56:36.06ID:???CakePHPより思想が洗練されてる
初めてRails触ったときの楽しさ
0471nobodyさん
2012/01/07(土) 16:30:58.27ID:???触ったこと無いから詳しくないけど、流行りらしいじゃん?
0473nobodyさん
2012/01/08(日) 00:51:56.66ID:???なんか楽しいよね!
ソースを眺めて回るのも、背中の数字が上がって良い感じ
0474nobodyさん
2012/01/08(日) 14:31:22.46ID:???ってかよく都道府県ってテーブルに入れてるけど、
別に内容変わらないし、データも少ないからDBに入れておく必要なくね?
都道府県データの配列持ったモデル作ったらよくね?
0475nobodyさん
2012/01/08(日) 16:48:37.12ID:???0476nobodyさん
2012/01/08(日) 17:15:03.74ID:???0478nobodyさん
2012/01/08(日) 17:44:44.48ID:???0479nobodyさん
2012/01/08(日) 17:57:53.68ID:???DBに保存するメリットは、保守を全部クライアント任せにするようなケースで簡単に変更出来るってところか
0480nobodyさん
2012/01/08(日) 18:59:21.55ID:???CHtml::activeDropDownList()件は解決したんでしょうか?
自分も知りたいところではあるんですが
0481nobodyさん
2012/01/08(日) 19:20:16.77ID:???どういうことを説明しているか、わかる方おられますか?
http://www.yiiframework.com/doc/api/1.1/CController#c2596
0484nobodyさん
2012/01/08(日) 20:42:11.41ID:???0485nobodyさん
2012/01/09(月) 00:01:41.81ID:???モデルのgetPrefOptions()でreturn CHtml::listData(Pref::model()->findAll(), 'id', 'name', 'group');して
ビューで<?php echo CHtml::activeDropDownList($model, 'pref_id', $model->prefOptions); ?>みたいな
モデルのrules()はrequiredとarray('pref_id', 'in', 'range'=>range(1, 47)),でOKかな?
0486nobodyさん
2012/01/09(月) 13:41:34.32ID:???よく考えたら必要じゃないよな。
これに限らず、データがほぼ固定のものってプログラムの中で持てばいいんじゃ、、、?
わざわざDBで持つと、処理が重くなるだけだし
0487nobodyさん
2012/01/09(月) 14:49:29.31ID:???http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=1404&forum=3
0488nobodyさん
2012/01/09(月) 14:50:35.66ID:???0489nobodyさん
2012/01/09(月) 14:56:09.49ID:???まじ助かってるわ
あの成果物がなければ俺がYiiを使うこともなかった
■ このスレッドは過去ログ倉庫に格納されています