【PHP】フレームワーク CakePHP 5ホール目【v1.2】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/12/19(金) 15:52:19ID:ylogT+7chttp://www.cakephp.org/
APIドキュメント
http://api.cakephp.org/
cookbook(マニュアル)
http://book.cakephp.org/ja
the Bakery
http://bakery.cakephp.org/
■日本語フォーラム
http://cakephp.jp/
■過去スレ
【PHP】フレームワーク CakePHP 4ホール目【v1.2】
http://pc11.2ch.net/test/read.cgi/php/1213892680/
【PHP】フレームワーク CakePHP 3ホール目【本命】
http://pc11.2ch.net/test/read.cgi/php/1205475360/
【PHP】フレームワーク CakePHP 2ホール目
http://pc11.2ch.net/test/read.cgi/php/1194976228/
【PHP】フレームワーク CakePHP
http://pc11.2ch.net/test/read.cgi/php/1163850802/
0653nobodyさん
2009/02/08(日) 21:59:25ID:???0654nobodyさん
2009/02/08(日) 22:39:55ID:???うちもそれ試した。3行になっちゃった。
やっぱ、>626の言う通り、自分で
フォームを書かないといけないのか・・・マンドクセ
生年月日を入力させるのに、セレクトメニューでは
不便なので、直接「年」「月」「日」の数字を
入力させたいのね。
何か、簡単な方法ある?
できれば、年号(MTSH)が付いてると西暦に直して
欲しいんだけど・・・(そこまで求めるのは無理か。)
0655nobodyさん
2009/02/08(日) 22:49:40ID:???0656nobodyさん
2009/02/08(日) 23:14:43ID:???'div' => false にして、出てくるフォームが改行されるのは、FormHelperの問題と違う。
CSSでそう指定してあるから改行される。
input {
clear: both;
}
みたいな感じで。
いっぺん、読み込んでるCSSファイルを移動するなりして、読み込めないようにしてみろ。
0657nobodyさん
2009/02/09(月) 00:07:57ID:???CakePHP1.2の変態cssをとっぱらったら、'div' => 'false'を付けなくてもtextBoxが1行に
ちゃんと3つ並ぶ。質問者はCakePHP1.2の変態cssを突破してtextBoxを1行に並べる方法を
質問しているのだと思う。
<?php
echo $form->text('hoge0');
echo $form->text('hoge1');
echo $form->text('hoge2');
?>
<br>
<br>
<?php
echo $form->text('hoge0', array('div' => 'false'));
echo $form->text('hoge1', array('div' => 'false'));
echo $form->text('hoge2', array('div' => 'false'));
?>
>>654
自分でフォームを直接書いたとしても、CakePHP1.2の変態cssの壁に阻まれると思う。
敵はCakePHP1.2の変態cssだと思う。変態cssを攻略するのが近道。
tableタグを使うと変態cssの中でもtextBoxを1行で表示できる。が詳細なレイアウトを
調整しようとすると変態cssと戦わざるを得ない。
<table>
<tr>
<td><?php echo $form->text('hoge0'); ?></td>
<td><?php echo $form->text('hoge1'); ?></td>
<td><?php echo $form->text('hoge2'); ?></td>
</tr>
</table>
0658nobodyさん
2009/02/09(月) 00:13:00ID:???無駄な労力使ってるんだw
0660nobodyさん
2009/02/09(月) 01:19:15ID:???0663nobodyさん
2009/02/09(月) 20:24:53ID:???0665nobodyさん
2009/02/09(月) 20:53:38ID:???0666nobodyさん
2009/02/09(月) 20:59:41ID:???0667nobodyさん
2009/02/09(月) 21:42:25ID:???0668nobodyさん
2009/02/09(月) 21:47:42ID:???0669nobodyさん
2009/02/09(月) 21:50:22ID:???0670nobodyさん
2009/02/09(月) 21:52:08ID:???0671nobodyさん
2009/02/09(月) 21:54:10ID:???完璧に一般的な機能のみしかも小機能だったら30万くらいでも作るが
0672nobodyさん
2009/02/09(月) 22:00:02ID:???ttp://www.with9.com/
このレベル
0673nobodyさん
2009/02/09(月) 22:04:10ID:???それ以下で請け負う奴もたぶん居ないし
0674nobodyさん
2009/02/09(月) 22:04:53ID:???0675nobodyさん
2009/02/09(月) 22:07:07ID:???売り手市場のIT業界でそんなの15以下で受ける奴は学生で居るかどうかってところ
0676nobodyさん
2009/02/09(月) 22:14:58ID:???0677nobodyさん
2009/02/09(月) 22:18:20ID:???0678nobodyさん
2009/02/09(月) 22:24:51ID:???お前は何を言ってんだ
ここ見てみろ
ttp://www.getafreelancer.com/projects/PHP/Flickr-clone.html
0679nobodyさん
2009/02/09(月) 22:25:37ID:???0680nobodyさん
2009/02/09(月) 22:28:45ID:???メンテに人件費がかかりすぎてるのかね
0681nobodyさん
2009/02/09(月) 22:30:45ID:???cloneインストールするだけじゃないだろうなw
0682nobodyさん
2009/02/09(月) 22:54:07ID:???スキルを磨かせてもらえ、今後のチャンスを与えてくれる様な仕事なら
ゼロ円でやらせてもらいます。よろしくお願いします。
0683nobodyさん
2009/02/09(月) 22:55:04ID:???よろしくお願いします。
0684661
2009/02/09(月) 23:14:55ID:???ボランティアで^^
0685nobodyさん
2009/02/09(月) 23:30:16ID:???cakephp の設置は1つのままで、稼動用、テスト用のデータベースへの接続を
ファイルをかきかえる事なく自由にやる事ってなんかいい方法ないですかね?
ブラウザであるアドレスにアクセスすると、データベースをこっちみてくれる、とか
そんなんできないですかね?
ページが探せないんですけど、なんかすると debug の値を変更してアクセスできる
みたいな tips をどっかで見た記憶があるんですけど、そういう勢いで…。
0686nobodyさん
2009/02/09(月) 23:34:21ID:???0687nobodyさん
2009/02/09(月) 23:40:42ID:???どういう意味?
2つファイルを置いてリネームして使えってこと??
そうじゃなくて、通常にアクセスすると稼動用DB を見にいってるけど
なんか URL などにある細工をするとテスト用DB を見にいく、
みたいに設定ファイルをいじる事なくやりたいんすが。
0689nobodyさん
2009/02/10(火) 01:05:58ID:???と
/unyo/app
って二カ所に同じものをコピーしてDBの設定だけ変えときゃいいんじゃねーの?
どうせテスト用のは一時的にソースいじったりするんだべ?
だったら運用とテストは別ディレクトリに分けといた方がいいんでないかい?
0691nobodyさん
2009/02/10(火) 01:53:54ID:???で よくね?
0692nobodyさん
2009/02/10(火) 02:21:12ID:???知った時は割とショック。
0693nobodyさん
2009/02/10(火) 08:56:22ID:???app/webroot/css/cake.generic.css
を直接書き替えればいいのかな?
何かお勧めの設定ありますか?
0694nobodyさん
2009/02/10(火) 09:58:52ID:???ttp://d.hatena.ne.jp/charly24/20070512/1178956046
debugの値じゃないけど、これも、設定変更が不要なパターンで使い勝手が良い
>>689のように別ディレクトリでも同じファイルでよいから、ミスが少ない
0695nobodyさん
2009/02/10(火) 12:33:26ID:???うまく作らないとviewがぐちゃぐちゃになる。
0696nobodyさん
2009/02/10(火) 18:10:04ID:???俺そんなかんじで、appを分けてテスト用の方で機能追加したりしてたんだけど、
機能追加分がやっとできたー。と思って、本番用のappからテスト用のappにコピーしちゃった。
そして気づかずに速攻でリモート鯖にアップしちゃった。
機能追加した分が全部パーじゃねえか!・・・・
まあ俺用サイトの管理画面の手直しだからまだ救われるけど、
バージョン管理とか導入した方がいいのかもしれんなあ。とほほ。
0697nobodyさん
2009/02/10(火) 18:21:35ID:???0698nobodyさん
2009/02/10(火) 20:35:04ID:???本番用はチェックアウトするだけってするのが
ミスもなくなってらくちんですよね
0699nobodyさん
2009/02/10(火) 22:01:09ID:???0700nobodyさん
2009/02/10(火) 22:06:53ID:???SVNって便利なの?どうやって使うの?
自動で差分を管理してくれたら、楽だろうなとは思う。
>>699
./cake bake all
が便利だったので、もういいか、って思う。
でも、bake allって焼き直す時に確認が多すぎてウンザリ。
0701nobodyさん
2009/02/10(火) 22:09:54ID:???今後、食っていけるかどうか不安で一杯なのに
「ボランティア」なんて心の余裕はない。勘弁してください。
0703nobodyさん
2009/02/10(火) 23:15:30ID:???自動でバージョン間の差分出すとか、
当たり前というか出来なかったらバージョン管理ツールと呼べないw
個人で使うならSVNがお勧めだな
0704nobodyさん
2009/02/10(火) 23:33:37ID:???良さげなんで、メモ
http://jeffhowden.com/code/css/forms/
0705nobodyさん
2009/02/11(水) 13:25:54ID:???0706nobodyさん
2009/02/12(木) 03:37:49ID:???外に見せる部分にもcake.genericとか使っちゃうの?
0708nobodyさん
2009/02/12(木) 12:04:09ID:???乙!
0709nobodyさん
2009/02/12(木) 12:34:16ID:???0710nobodyさん
2009/02/12(木) 16:27:26ID:???0711nobodyさん
2009/02/12(木) 16:41:01ID:???formヘルパーの拡張、誰か作ってくれ。いや、ください。
というか、formヘルパーの拡張って、どこですんの?
0712nobodyさん
2009/02/12(木) 16:42:20ID:???2つのフィールドじゃない。3つのフィールドだ。
0713nobodyさん
2009/02/12(木) 16:49:22ID:???何をどう拡張して欲しいか、まったく分からんのだが
selectじゃなくてinputってこと?
独自のHelper作ればよろしいがな
0714nobodyさん
2009/02/12(木) 19:58:05ID:???ログイン画面を、管理者用と一般用に分けたくなりました。
そこで、管理者用にmodelが空のkanris_controllerを作って
$this->Auth->loginAction = '/kanris/login';
として管理者用ログインのviewを表示させたのですが、
うまくログインできません。
方法として間違ってるのでしょうか?
なにかヒントがあれば、教えて頂けませんでしょうか。
0715nobodyさん
2009/02/12(木) 20:41:26ID:???0717nobodyさん
2009/02/13(金) 02:26:21ID:???この変換してくれる関数とか、ありませんか?
0718nobodyさん
2009/02/13(金) 03:05:24ID:???【PHP】下らねぇ質問はID出して書き込みやがれ 80
http://pc11.2ch.net/test/read.cgi/php/1233479457/
0721nobodyさん
2009/02/13(金) 03:52:15ID:???<?php
class DateFormHelper extends AppHelper {
function input($title = null, $model = null, $field = null, $value = null) {
$class = "dateForm";
$name = "data[".$model."][".$field."]";
$txt = "\r";
$txt .= "<div class=\"input text\">";
$txt .= "<label for=\"".$model.Inflector::camelize($field)."\">".$title."</label>";
$txt .= "<input class=\"".$class."\" name=\"".$name."[year]\" type=\"text\" maxlength=\"10\" value=\"1970\" />";
$txt .= "年";
$txt .= "<input class=\"".$class."\" name=\"".$name."[month]\" type=\"text\" maxlength=\"10\" value=\"1\" />";
$txt .= "月";
$txt .= "<input class=\"".$class."\" name=\"".$name."[day]\" type=\"text\" maxlength=\"10\" value=\"1\" />";
$txt .= "日";
$txt .= "</div>\r";
return $this->output($txt);
}
}
?>
だが、引数が多すぎる・・・
Helperの中で、引数をどこからか取得できない?
0723nobodyさん
2009/02/13(金) 08:30:00ID:???0724nobodyさん
2009/02/13(金) 11:24:30ID:???HtmlHelperってobsolate? 意外に面倒? って思って、
直接書いちゃった。
引数に当るものは、$this->params, $this->dataで
普通に取れた。
0725nobodyさん
2009/02/13(金) 12:32:00ID:???$this->Form->inputに渡しなさいってことよ
http://book.cakephp.org/ja/view/102/
0726馬鹿
2009/02/13(金) 15:25:23ID:???>>637
ACOにmodelとforeign_keyを入れると、
たしかにcheck()で判定できました。
例えば、
$aro = array("model"=>"User", "foreign_key"=>1);
$aco = array("model"=>"Post", "foreign_key"=>3);
$this->Acl->check($aro, $aco, 'read')
みたいな感じでですよね。
ですが、Authと組み合わせても、
ACOのforeign_keyがまったく影響されません。
0727馬鹿
2009/02/13(金) 15:26:41ID:???id:3のPostの内容が表示されてしまいます。
SELECT `Aco`.`id` , `Aco`.`parent_id` , `Aco`.`model` , `Aco`.`foreign_key` , `Aco`.`alias`
FROM `acos` AS `Aco`
LEFT JOIN `acos` AS `Aco0` ON ( `Aco0`.`alias` = 'Posts' )
WHERE `Aco`.`lft` <= `Aco0`.`lft`
AND `Aco`.`rght` >= `Aco0`.`rght`
ORDER BY `Aco`.`lft` DESC
LIMIT 0 , 30
# というか、なんでaliasで探しているんだ?
なんとかならないでしょうか?
ちなみに、beforeFilter()の中はこんな感じです。
function beforeFilter(){
$this->Auth->authorize = 'crud';
$this->Auth->authenticate = $this->NoHash;
$this->Auth->loginAction = array('controller' => 'users', 'action' => 'login');
$this->Auth->logoutRedirect = array('controller' => 'users', 'action' => 'login');
$this->Auth->mapActions(
array(
'create' => 'add',
'read' => 'view',
'update' => 'edit',
'delete' => 'delete'
)
);
$this->set('auth', $this->Auth->user());
}
0728馬鹿
2009/02/13(金) 15:47:24ID:???User の情報には、単独の Model::find() の実行結果が(もしアソシエーションが正しく定義されていれば、それも)含まれます。
逆に、ある特定のブログの投稿やレシピの表などを編集する作業を管理したい場合は、これらのモデルのレコードを ACO にリンクさせます。
とあるんですが、これって、
class User extends AppModel{
var $actsAs = array('Acl'=>array('requester', 'controlled'));
}
であれば、Userに所属するPostも同様に扱われる、と解釈していいのでしょうか。>Model::find()の実行結果が含まれます。
0729nobodyさん
2009/02/13(金) 15:57:43ID:???渡したいのは山々だが。うまいやり方が分からん。
特に、3つのinputを、一つの<div>に括るのが。
ちなみに、>721だと、cssに
form .dateForm {
width: 45px;
}
を追加すると、それぞれの数字の入力場所が小さくなって、
他のcssとの設定もあって、年/月/日の3つの入力場所が
1行に収まるのですよ。
0730馬鹿
2009/02/13(金) 16:02:04ID:???> なんか、ここはレベル低いなぁ。
と言ったのは、例えば1つ上で、
> formヘルパーで、複数のテキスト入力boxを
> 1行に並べるのって、どうするの?
なんて質問している人がいるからだったんだが、
正直、すまんかった。
ちょっと苛ってた。
0732nobodyさん
2009/02/13(金) 17:12:28ID:???0733nobodyさん
2009/02/13(金) 17:28:54ID:???0734nobodyさん
2009/02/13(金) 18:32:32ID:???check()でfalseが返るならそれを判定して好きなようにエラー処理でもしろよ
まとめてやりたいならcontroller,actionを全部ACO扱いにしてapp_controllerのbeforeFilterあたりで好きにやれ
0735馬鹿
2009/02/13(金) 20:38:17ID:???> check()でfalseが返るならそれを判定して好きなようにエラー処理でもしろよ
> まとめてやりたいならcontroller,actionを全部ACO扱いにしてapp_controllerのbeforeFilterあたりで好きにやれ
うーん、そうするしかないのかな。
開発例だとACOがテーブル+アクション単位だからする必要がなくて、
ACOをレコード単位(モデル名と外部キー指定)で権限設定した途端になにか書かなければならない、
というのは変だと思うんだが…。
まぁ、aliasの使い方がまだ良く分かっていない。
というか、仕様が固まってなさ過ぎるんじゃないか、とさえ思った。
そもそも、GoogleしてもACOのmodelとforeign_keyに値を入れる人があまりいないんだよなぁ。
あと、こんな議論してたり…。
ttp://groups.google.ch/group/cake-php/msg/8d20dc14a91402c3
でも、実際にやってみて勉強になったし、感謝してる。
ありがとう。
0736nobodyさん
2009/02/13(金) 22:19:37ID:???0737nobodyさん
2009/02/13(金) 22:26:38ID:???どうすればいいですか?
1つのモデルの中で、
過去の一覧、今日日付の一覧、未来日付の一覧のように
3つのテーブルを表示して、それぞれに paginator をつけたいんですが、
コントローラ変数 $paginateの定義をどうやって複数にすればいいか
わからなくて…。
0738nobodyさん
2009/02/13(金) 23:20:28ID:???$this->data['User']['birth_day'] = "1960-02-13" の様なデータを
どうやって$this->Form->inputに渡すか、ずっと考えてた。
$this->data['User']['birth_day']['year'] = "1960"
$this->data['User']['birth_day']['month'] = "02"
$this->data['User']['birth_day']['day'] = "13"
というデータを作って、
$form->text('User.birth_day.year', array('class' => 'dateForm'))
$form->text('User.birth_day.month', array('class' => 'dateForm'))
$form->text('User.birth_day.day', array('class' => 'dateForm'))
で、いいのか??
0739nobodyさん
2009/02/14(土) 15:13:33ID:???やっつけ
class FormHogeHelper extends FormHelper {
function dateText( $fieldName, $options = array( ), $separator = array( '年', '月', '日') ) {
// year
$opts = array(
'class' => 'input date year text',
'maxlength' => '4',
);
$options = am( $opts, $options );
$ret .= parent::text( $fieldName . 'year', $options );
$ret .= $separator[0];
// month
$options['class'] = 'input date month text';
$options['maxlength'] = 2;
$ret .= parent::text( $fieldName . 'month', $options );
$ret .= $separator[1];
// day
$options['class'] = 'input date day text';
$ret .= parent::text( $fieldName . 'day', $options );
$ret .= $separator[2];
return $ret;
}
}
0740nobodyさん
2009/02/14(土) 19:24:44ID:m6dznHMB俺ならPEARのPagerで実装しちゃうかも…それ。
いい方法が思いつかない。
ところで、皆様ビュー作るときのデザインってどうしてる?
デザイン周りはDreamweaver、ロジックはeclipseで書いてるんだけど、
ctpに落とし込むとめんどくさいのだよね。Htmlヘルパーで画像差込すると
デザインプレビューできないし。
0742nobodyさん
2009/02/14(土) 22:11:23ID:???cakeの機能でやりたいんだよなー
なんとなく。
でもPEARのPagerなら可能なんだね。
いいこと聞いたわ
0744nobodyさん
2009/02/15(日) 00:08:56ID:???model内で、paginateCount()とpaginate()の一番めの引数にsqlを渡せるようにしとく。
controller内にsql書くのはアレなので、sql取得用のメソッドも書いとく。
controller内で
$this->paginate = array(
'conditions' => $this->Model->getSql( '過去'),
'limit' => $limit,
);
$this->set( 過去の一覧, $this->paginate( 'Model' ) );
$this->paginate = array(
'conditions' => $this->Model->getSql( '今日'),
'limit' => $limit,
);
$this->set( 今日日付の一覧, $this->paginate( 'Model' ) );
$this->paginate = array(
'conditions' => $this->Model->getSql( '未来'),
'limit' => $limit,
);
$this->set( 未来日付の一覧, $this->paginate( 'Model' ) );
0745nobodyさん
2009/02/15(日) 05:16:04ID:???おかげで、タグが無くなり、可読性が上がりました。
'1960-02-13'を、年、月、日に分ける処理は必要でした。
0746nobodyさん
2009/02/15(日) 11:18:12ID:???AppControllerでsetするしかないの?
個別のコントローラでsetしたら未定義エラーになった。
0747nobodyさん
2009/02/15(日) 11:59:08ID:???飲み会明けで、思考力が落ちてるわ。
0748nobodyさん
2009/02/15(日) 18:54:59ID:???Openidを使うためにOpenidコンポーネントを使おうとしています。
で、バックエンドをMySQLから変更したいんだけど(Postgres使いたい)、
/components/openid.php の
getMySQLStore周辺をゴニョゴニョ弄っても認証が通らないです。
具体的には
$db = DB::connect($dsn);で接続は出来てるんだけど、
その後の処理の中でnonceとかassociationがDBに入っていかない
→認証の戻りでエラー(OpenID verification failed: Server denied check_authentication)
(バックエンドをファイルベースに変えると
認証用のファイルが作成されて、認証も通ることは確認した)
OpenidコンポーネントでバックエンドをMySQLから変える方法って
どこかに資料とか無いでしょうか……。
■ このスレッドは過去ログ倉庫に格納されています