【PHP】フレームワーク CakePHP 9ホール目【v1.3】

このエントリーをはてなブックマークに追加
1nobodyさん
CakePHPは、Ruby on Railsの概念の多くを取り入れた、Rails流の高速開発とPHPの機動性を兼ね備えたフレームワークです
CakePHPから派生したLithium(li3)も専スレできるまではここでどうぞ
質問するときはCakePHPのバージョンを書きましょう

※sage推奨
※質問時もsageること
※他フレームワークとの比較等はスレ違いです
テンプレは>>1-5くらい

■本家
http://www.cakephp.org/
APIドキュメント
http://api.cakephp.org/
the Bakery
http://bakery.cakephp.org/
CakeQs
http://cakeqs.org/
CheatSheet (PDF)
http://cakephp.org/files/Resources/CakePHP-1.2-Cheatsheet.pdf
github - cakephp
http://github.com/cakephp

■日本語公式
http://cakephp.jp/
フォーラム
http://cakephp.jp/modules/newbb/
cookbook(マニュアル)
http://book.cakephp.org/ja
2nobodyさん:2010/07/23(金) 09:13:53 ID:???
■1.3系
CakePHP1.3系のダウンロード
http://github.com/cakephp/cakephp1x/archives/1.3
CakePHP 1.3.x API
http://api13.cakephp.org/
1.2から1.3への移行ガイド
http://book.cakephp.org/ja/view/1561/
CakePHP 1.3の新機能
http://book.cakephp.org/ja/view/1572/

■1.2系
CakePHP1.2系のダウンロード
http://github.com/cakephp/cakephp1x/archives/1.2
CakePHP 1.2.x API
http://api12.cakephp.org/

■Lithium(li3) PHP5.3+
http://rad-dev.org/lithium/
3nobodyさん:2010/07/23(金) 09:14:23 ID:???
■過去スレ
【PHP】フレームワーク CakePHP 8ホール目【1.3】
http://pc11.2ch.net/test/read.cgi/php/1268874059/
【PHP】フレームワーク CakePHP 7ホール目【v1.2】
http://pc11.2ch.net/test/read.cgi/php/1251789126/
【PHP】フレームワーク CakePHP 6ホール目【v1.2】
http://pc11.2ch.net/test/read.cgi/php/1236563737/
【PHP】フレームワーク CakePHP 5ホール目【v1.2】
http://pc11.2ch.net/test/read.cgi/php/1229669539/
【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/
4nobodyさん:2010/07/23(金) 09:14:51 ID:???
■関連スレ

【PHP】PHPフレームワーク総合スレ14
http://pc11.2ch.net/test/read.cgi/php/1253912143/
【PHP】下らねぇ質問はID出して書き込みやがれ 97
http://pc11.2ch.net/test/read.cgi/php/1279833891/
Zend Framework Part4
http://pc11.2ch.net/test/read.cgi/php/1265721684/
symfony PHPフレームワークpart2
http://pc11.2ch.net/test/read.cgi/php/1268753684/
[PHP][フレームワーク]CodeIgniterスレ
http://pc11.2ch.net/test/read.cgi/php/1177683436/
【PHP】Ethna part.2【国産フレームワーク】
http://pc11.2ch.net/test/read.cgi/php/1186096518/
【PHP】フレームワークMapleに舌鼓
http://pc11.2ch.net/test/read.cgi/php/1122105465/
5nobodyさん:2010/07/23(金) 09:15:00 ID:???
■その他いろいろ
PhpMatsuri2010(予定)
(10月2-3日)
CakeFest 2010 (Chicago, llinois, USA)
http://cakefest.org/
CakeMatsuriTokyo2009
http://matsuri.cakephp.jp/
CakePHPカンファレンス東京(2008)
http://conference.cakephp.jp/

連載:CakePHPで高速Webアプリ開発|gihyo.jp … 技術評論社
http://gihyo.jp/dev/serial/01/cakephp
CakePHP 規約ワードメーカー WordMaker for CakePHP Conventions
ttp://www.cpa-lab.com/tech2/inflects/
Free CakePHP Book (Matt Curry and Mark Story)
http://www.pseudocoder.com/free-cakephp-book/
あとこのへんとか(初心者向けTIPS)
http://www.avatarfinancial.com/pages/cake/
CakePHP Note
http://www.garacter.com/notes/CakePHP+Note/ni:5
CakePHPを使ったMVC設計のベストプラクティス - Sooey
ttp://www.sooey.com/journal/2008/03/26/717/
Qdmail(日本語メールコンポーネントとして利用可能なライブラリ)
ttp://hal456.net/qdmail/
10分で作るCakePHPアプリ for Windows
http://p4life.jp/cake/

■ver1.1用
CakePHP プログラマーズ リファレンスガイド
http://cakephp.jp/doc/
CakePHPフレームワークによる快速WEB開発 |codezine
http://codezine.jp/a/article/aid/670.aspx
6nobodyさん:2010/07/23(金) 09:15:34 ID:???
■関連書籍
・ver1.3系
CakePHP 1.3によるWebアプリケーション開発―オープンソース徹底活用
http://www.amazon.co.jp/dp/4798026646/
CakePHP 1.3 (独語らしい)
http://www.amazon.co.jp/dp/3827327709/
・ver1.2系
CakePHP1.2ガイドブック
http://www.amazon.co.jp/dp/4839932468/
CakePHPによる実践Webアプリケーション開発
http://www.amazon.co.jp/dp/4839930651/
オープンソース徹底活用 CakePHPによるWebアプリケーション開発
http://www.amazon.co.jp/dp/4798022225/
CakePHP ポケットリファレンス※ver1.2beta
http://www.amazon.co.jp/dp/4774135038
CakePHP徹底入門
http://www.amazon.co.jp/dp/479811717X
PHPで作る携帯サイトデベロッパーズガイド
http://www.amazon.co.jp/dp/4798024767/
・ver1.1系
CakePHPガイドブック
http://www.amazon.co.jp/dp/4839924317
Fast CakePHP
http://www.amazon.co.jp/dp/4774133418
7nobodyさん:2010/07/23(金) 09:16:23 ID:???
テンプレらしきものは以上(>>1-6 ひとつ増えちゃった)
補足があればどうぞ

Have a Nice Cooking !
> cake bake all User
8nobodyさん:2010/07/23(金) 14:23:29 ID:???
beforeValidateで加工編集した$this->dataをビューに渡すには
バリデート後にコントローラー内で

$this->data[モデル] = $this->モデル->data;

ってやってたんですが、
これだとモデル毎にコントローラー内に書かないといけないので
もっと簡単にする方法はないでしょうか
9nobodyさん:2010/07/23(金) 14:30:58 ID:???
>>8
基本的にbeforeValidateはsave用のデータを変更するときに使用するから
コントローラーのdataに戻さない使い方が基本よ

で、saveに失敗したら戻したいとかなら、データ加工のメソッドをモデルに別で作って、setの前とかで呼んであげたほうが良いと思う
$this->data = $this->User->changeStatus();
みたいに
10nobodyさん:2010/07/23(金) 14:31:19 ID:???
BBS用のコントローラを作って
class BbsController extends AppController {
  var $name = 'Bbs';
  var $title = "BBS";

とやったんですが、「bbテーブルがない」とエラーになります。
sで終わる単語は使うとまずいんでしょうか?
11nobodyさん:2010/07/23(金) 14:33:22 ID:???
>>9
あ、その例だとデータ渡ってないな
$this->data = $this->User->changeStatus($this->data);
こうか?
12nobodyさん:2010/07/23(金) 14:35:33 ID:???
>>10
sで終わる略語はInflectorに設定しなくてはだめ

可能ならtable名をboardsとかにしたほうが良い
13nobodyさん:2010/07/23(金) 15:28:37 ID:???
>>10
コントローラで
var $uses = array('Bbs');

bbsモデルで
var $useTable = 'bbs';

って明示的に指定してやればうまくいきそうだけど。
14nobodyさん:2010/07/23(金) 15:51:54 ID:???
俺もいつもそうしてるな。
テーブル名は自由に付けたい
15nobodyさん:2010/07/23(金) 20:53:02 ID:???
俺ならboardsにするな
BBSコントローラーだといまいち何をするものかわからん気がする
掲示板システム全部を請け負うと肥大化しそうだし、boards,threads,responsesとかで分けた方がいいんじゃね?
16nobodyさん:2010/07/23(金) 23:15:07 ID:???
BBSの複数形はBBSes
てか、掲示板は英語でforumって書くのが一般的だと思うが
17nobodyさん:2010/07/23(金) 23:30:08 ID:???
topicsは?
18nobodyさん:2010/07/23(金) 23:42:12 ID:???
cakephpって普通にgetパラメーター使うのって非推奨?
標準ページングのURLが気持ち悪くて、/hogeとか/hoge?page=2にしてみて、
/hogeをキャッシュしようと思ったら/hoge?page=2も同じページと見なされちゃうっぽいんだけど
19nobodyさん:2010/07/24(土) 00:57:52 ID:???
>>18
そこなんだよね。
cakeのpage:2 形式だとクエリストリングにスラッシュとか入った時におかしくなるし、
?page=2にしたらキャッシュしてくんないし。俺はキャッシュの方をあきらめたけど。
20nobodyさん:2010/07/24(土) 01:38:30 ID:???
/key=val/key2=val2/
にかえるのでよければ簡単にできる。

あとキャッシュは自前でクラス使うのもそれほど苦じゃないかと
21nobodyさん:2010/07/24(土) 04:31:49 ID:???
ま、素のPHPで書けばそもそもキャッシュ無いしな。
キャッシュの恩恵が受けられるサイトの場合、鯖で対策するだろうし。
22nobodyさん:2010/07/24(土) 14:37:15 ID:???
beforFilter内でrenderができないのだけどエラーを出す時にはどうすればよいのでしょうか
23nobodyさん:2010/07/24(土) 20:02:03 ID:???
CakePHPってPHP4の書き方を強要されるわけだが
それで気持ち悪いと思わないの?
24nobodyさん:2010/07/24(土) 20:07:02 ID:???
気持ち悪いと思うかどうかが聞きたいの?
25nobodyさん:2010/07/24(土) 22:28:17 ID:???
>>23
そうだね。じゃ、バイバイ
26nobodyさん:2010/07/24(土) 22:56:15 ID:???
PHPのバージョンはそんなに気にならないが、連想配列地獄はかなり気になる
27nobodyさん:2010/07/24(土) 23:00:45 ID:???
他に拡張性のあるfunctionの書き方ってどんなのがあるの?
28nobodyさん:2010/07/24(土) 23:03:23 ID:???
>>24
気持ち悪いと思わないの?
気持ち悪いのであれば何故使ってるの?

>>26
なぜバージョンが気にならないの?
今時PHP4の書き方なんかに戻れないんだけど。
29nobodyさん:2010/07/24(土) 23:17:59 ID:???
>>28
PHP5でしかつかわないんならPHP5で書けばいいだけだと思うんだけど
PHP4を強要される場面があるなら教えてくれないか?
30nobodyさん:2010/07/24(土) 23:26:33 ID:???
Lithiumに期待
31nobodyさん:2010/07/24(土) 23:36:03 ID:???
何の手続きか知らないけど
「気持ち悪いと思わないの?」なんて聞かれるのは気持ち悪い

PHP4の書き方が気持ち悪いかどうかで言ったら別に気持ち悪くはないし

だから
PHP4の書き方強要されるのが嫌だ もっとうまい具合に解決してほしい
とストレートに言ってくれたほうがいいな
32nobodyさん:2010/07/25(日) 00:37:10 ID:???
var $name = なんて書かないぜ!
33nobodyさん:2010/07/25(日) 03:13:37 ID:???
CakePHPに言いがかりをつけたいだけだから
相手にしても会話にならない
34nobodyさん:2010/07/25(日) 03:34:31 ID:???
まぁそう言わずに
むしろ批判こそいろいろ見えてきていいと思うけどな。
批判してた人も、え?そうなの!?になるかもしれないじゃん。
35nobodyさん:2010/07/25(日) 04:37:05 ID:???
批判というか意見だけど、URLパラメーターの切替が出来たらいいな。
/contoroller/action/1 や /contoroller/action/id:1
みたいな形はSEO的に良いかもしれないけど、少しわかりづらい。
従来のように
/contoroller/action/?id=1 とか /contoroller/action?id=1
でも良いと思う。
36nobodyさん:2010/07/25(日) 05:36:41 ID:???
mod_rewriteのせいで、リクエスト側と受け取るURLが変わるから
OAuth認証のsignatureが合わなくて苦労した
37nobodyさん:2010/07/25(日) 13:46:57 ID:???
>>35
スタティックなページだと、smart URLの方がいいと思うんだけど、
ページングとかのダイナミックなページは従来のURLの方がいいと思う

× /archive?id=1
○ /archive/id:1
○ /archive?page=2
× /archive/page:2

というわけで俺も両方使えた方がいいと思うけど、
従来のURLを切り捨てて実装している機能が多いから無理だろうなあ
前スレに出ていたキャッシュとかもそうだけど。
38nobodyさん:2010/07/25(日) 16:16:20 ID:???
named使いにくいと思ってたの、俺だけじゃなかったんだ

Cake標準のページネーション使うと、
named使わなきゃならないんだよね。

検索フォーム作るとき、
POSTのときと、namedのときで処理を変えなきゃいけないのが面倒・・・

Paginatorヘルパー拡張して、page=1みたいなURL吐くようにすればいいのかな?
39nobodyさん:2010/07/25(日) 16:33:37 ID:???
>>38
おれはいっそのこと、$_POSTとか$_GETとかそのまま受け取るようにしてるよ。
namedから呼び出していたら使い勝手悪いし。
40nobodyさん:2010/07/25(日) 20:37:53 ID:???
>>39
2ページ目以降はどうするの?
41nobodyさん:2010/07/25(日) 20:49:24 ID:???
>>40
if ($_GET["page" > 1]) {
$page = $_GET["page"];
} else {
$page = 1;
}

こんな感じでページネーションに渡せば良くないか?
42nobodyさん:2010/07/25(日) 20:50:32 ID:???
1行目が変だった・・・
if ($_GET["page"] > 1) {

ま、整数のみ許可するとかもう少し処理入れるべきだろうが。
43nobodyさん:2010/07/25(日) 21:03:34 ID:???
なにそのうんこソース
44nobodyさん:2010/07/25(日) 21:04:58 ID:???
$page = empty($_GET['page']) ? 1 : $_GET['page'];
45nobodyさん:2010/07/25(日) 21:05:59 ID:???
えーーくせれんっ!!
46nobodyさん:2010/07/25(日) 21:33:12 ID:???
namedで来るのはそのまま使って後ろに ?query=eroero とか付ければいいだけじゃ。
47nobodyさん:2010/07/25(日) 21:44:55 ID:???
>>46
そんな気持ち悪いURLいやだろ
48nobodyさん:2010/07/25(日) 23:54:46 ID:???
もう、Cake使うのやめて、必要な部分だけオレオレに移植しろよ。
49nobodyさん:2010/07/26(月) 01:51:25 ID:REeMHXov
webrootだけを以下のような構成で配置しているとします。

/home/test/public_html // CakePHP以外のHTMLファイルなどがある
/home/test/public_html/system // CakePHPの公開ディレクトリ

ベースURLはhttp://localhost/test/だとし
システム用の(Cake用)の場合は、http://localhost/test/system/になるとします

ビューの中で<?php include("../include/header.php")?>
と相対指定すれば
/home/test/public_html/include/header.php
のファイルを読み込む事が出来るのですが、
ページネーションなどでURLが階層化されるとinclude出来ません。

通常は、views/elementにビューの共通ファイルを入れると思うのですが、
/home/test/public_html/include/header.phpにあるファイルをコピーするので
同じファイルが2つ存在する事になり、効率が良くないです。

上記のように「Cakeを使う箇所・使わない箇所」で分けている時、
共通化するファイルはどうするべきでしょうか?
やはりviewsに入れて分けるしかないのでしょうか?
50nobodyさん:2010/07/26(月) 02:21:11 ID:???
問題を切り分けろバカ


>ビューの中で<?php include("../include/header.php")?>
>と相対指定すれば
あたりまえだろ
絶対指定しろ

>上記のように「Cakeを使う箇所・使わない箇所」で分けている時、
>共通化するファイルはどうするべきでしょうか?
>やはりviewsに入れて分けるしかないのでしょうか?
絶対指定した上で自分でどちらが扱いやすいか判断しろ

51nobodyさん:2010/07/26(月) 02:27:28 ID:???
paginaterのパスから総体指定すればいいんじゃね?
52nobodyさん:2010/07/26(月) 02:51:26 ID:???
こいつ同じやつだろ
しかも聞くだけ聞いてまたのこのこあらわれる
53nobodyさん:2010/07/26(月) 10:10:02 ID:???
バレちゃったwテヘッ
54nobodyさん:2010/07/27(火) 11:03:38 ID:???
rollback後に何らかの処理をafterrollback的に行いたい場合は
こんな感じでモデルに記述してOKでしょうか

function rollback()
{
parent::rollback();
$this->afterRollback();
}
function afterRollback()
{
//処理
}
55nobodyさん:2010/07/27(火) 11:50:14 ID:???
>モデルに記述して
なんだよモデルってAppModel? 特定のモデル?modelClass?

あとOKでしょうか?ってエラー出なきゃなんでもOkっちゃOKだよ
56nobodyさん:2010/07/27(火) 13:08:06 ID:???
ここの住人に許可を得たいんだと思う
57nobodyさん:2010/07/27(火) 13:14:07 ID:???
じゃあおれは許可する
58nobodyさん:2010/07/27(火) 13:28:33 ID:???
いやワシは認めん。そもそも function rollback()って誰だ!
59nobodyさん:2010/07/27(火) 14:33:44 ID:???
結婚はrollbackはできんぞ!
insertしたら責任を取れ!
60nobodyさん:2010/07/27(火) 14:42:03 ID:???
>>59
そりゃ、結婚した時点で自動コミットだからrollbackできない。
61nobodyさん:2010/07/27(火) 14:44:16 ID:???
しかも結婚テーブルはIDはオートインクリメントでdelete権限ついてないから厄介だよね。
62nobodyさん:2010/07/27(火) 14:51:29 ID:???
お前らはまずinsertするデータがnot foundだから安心すれ
63nobodyさん:2010/07/27(火) 15:47:46 ID:???
結婚テーブルがありません
64nobodyさん:2010/07/27(火) 15:53:51 ID:???
$data = $this->TestModel->findById(1);
とすると、
$dataにはArrayデータが格納されます。
このArrayの中に「value」というカラムのデータがあるのですが、このvalueの値を1行で取得したいのです。

$value = $this->TestModel->findById(1)['TestModel']['value'];
はだめでした。

文法的にどのように書くのが正しいのでしょいか?
65nobodyさん:2010/07/27(火) 15:57:55 ID:???
一行で取得したい
そんな風に考えていた時期が僕にもありました。
今考えると赤面ものです。
66nobodyさん:2010/07/27(火) 15:59:35 ID:???
>>64
TestModelにオリジナルメソッド作りましょう
6764:2010/07/27(火) 16:01:31 ID:???
>>65,66
modelに書くべきとは確かに思います。
ただ単に、文法的にできるかどうか、知りたいんです・・・。
68nobodyさん:2010/07/27(火) 16:03:05 ID:???
>>64
1.findのfieldsで取得したいfieldを指定できる。
2.配列の値がひとつならcurrentで下がっていけばいい。

これでできるんじゃないか
読みづらくてあほだけど。
69nobodyさん:2010/07/27(火) 16:09:35 ID:???
あー
perlでは
{$this->TestModel->findById(1)}['TestModel']['value'];
こんな感じにできた気がするなぁPHPは無理なんじゃない?てか知らない。
70nobodyさん:2010/07/27(火) 16:39:06 ID:???
他の言語だとできるけど、PHPじゃ無理です
71nobodyさん:2010/07/27(火) 18:37:46 ID:???
>>64
これじゃだめなん?
$data = $this->TestModel->field('value', array('id' => 1));
72nobodyさん:2010/07/27(火) 19:43:06 ID:???
おれもそれを言おうとしていた
73nobodyさん:2010/07/27(火) 19:45:19 ID:???
おれもおれも
74nobodyさん:2010/07/27(火) 19:45:57 ID:???
おれもいつもそうしてる。
7564:2010/07/27(火) 21:01:45 ID:???
>>71
ありがとうございました。
modelに処理を書くにしてもシンプルに書きたいので、まさに理想です。
このやり方、しっかり心に刻みます。

みな調子いいなぁ・・・w
76nobodyさん:2010/07/27(火) 21:43:58 ID:???
俺も最初からわかっててあえて・・・な
77nobodyさん:2010/07/29(木) 03:48:26 ID:8543E4o9
78nobodyさん:2010/07/29(木) 15:34:05 ID:???
idをfindして、その結果を次のクエリとしてINに指定したいとき、
findしたデータを1次元の配列に変換しないといけないのですが
これができる関数ってあるのでしょうか。
array_mapするのが定石でしょうか。

$result=$this->Model1->find('all', array('fields'=>'Model1.id'));
$array=hoge_function($result);
$conditions=>array('Model2.hoge_id'=>$array);
$this->Model2->find('all', array('conditions'=>$conditions));

上記の例の場合のhoge_functionのような処理を簡単にしたいです。
79nobodyさん:2010/07/29(木) 15:43:01 ID:???
>>78
その例ならアソシエーション使わない理由が分からない
例を無視して応えるならfind('list')で取得してarray_keysかな?
80 [―{}@{}@{}-] nobodyさん:2010/07/30(金) 02:07:24 ID:???
デジタル工房です
只今オープン価格中
http://gekiyasu.issekinicho.com

81nobodyさん:2010/07/30(金) 09:29:57 ID:???
>>78
Set::extractかな
http://book.cakephp.org/ja/view/1501/extract

CakePHPはサブクエリが思うように使えないから、俺もよくやる
82nobodyさん:2010/07/30(金) 10:01:28 ID:???
Set::extractは便利だけどfindAllは無駄
8378:2010/07/30(金) 12:28:39 ID:E2f+bC/4
>>81
おー、まさにこれですね。ありがとうございます。
他にも使えそうなのがありますね > setクラス
84nobodyさん:2010/07/30(金) 12:32:10 ID:???
Set::merge
Set::combine
Set::extract
あたりは結構常用してる
85nobodyさん:2010/07/30(金) 12:54:21 ID:???
>>83
キミはSet覚える前にアソシエーションを覚えるべきw
86nobodyさん:2010/07/30(金) 18:30:15 ID:???
cakephp1.3を使っています。
下記のようにあるコントローラに別のコントローラを継承させています。
App::import('Controller','Base');
class TestController extends BaseController {
Testというページは情報入力画面なのですが、
最初の画面は表示されるのにサブミットボタンを押した後真っ白な画面になってしまいます。
phpのエラーはなくdebug.logにも何も出力されておりません。
継承ではフォームの作成は出来ないのでしょうか。

あいまいな質問ですみません。
何かヒントでもつかめればと思います。
87nobodyさん:2010/07/30(金) 18:47:58 ID:???
もう一つご質問です。
TestControllerとTest2Controllerというコントローラがあり
処理も全く同じでファイルパスだけが違うます。
これまで処理が全く同じでパスだけ違う場合
シンボリックリンクを張りファイル名だけ変えていたのですが
cakeの場合クラス名が変わるのでそれが使えません。
同じ処理を行うファイルを複数使用する場合
効率のいいやり方はありますか?
88nobodyさん:2010/07/30(金) 19:13:40 ID:???
>>86
SecurityComponent
blackholeCallback
あたりだと思う
89nobodyさん:2010/07/30(金) 19:14:56 ID:???
>88
SecurityComponentを外したら確かにアクセス出来るようになりました
どうもありがとうございます!
90nobodyさん:2010/07/30(金) 19:24:07 ID:???
なんか色々あれだな
答えたくもないわ
91nobodyさん:2010/07/30(金) 19:40:54 ID:???
>>87
どうしてそこに至ったかはあえて問わないが
mod_rewriteとか、、
92nobodyさん:2010/07/30(金) 22:55:32 ID:???
Pluginを表示してる時に、$form->create();つかうと、
URLにプラグインが保管されてしまうんですがこんな仕様でしたっけ?

$html->link(array(....));のときにプラグイン名を明示的に
'plugin'=>nullってしてやらないとこれもプラグインが勝手に保管されるので同じように
form->create()の第二引数で指定してやってもダメでした。

なんか他のところに原因があるんでしょうか
9392:2010/07/30(金) 23:05:23 ID:???
今までそうじゃなかっただろとおもいながらもよくよく考えてみたら同じケースが無いだけだったみたいな。
で、どーもそういう仕様っぽいなってことで、以下のようにしました。
<?php echo $form->create('Member', array('url'=>array('plugin'=>null, 'controller'=>'members', 'action'=>'login')));?>

memberを2個かくのに抵抗感汁んですがまぁいいや。
94nobodyさん:2010/07/31(土) 07:39:26 ID:???
よく分からないんだけど、pluginの /:plugin/hoge/add のページから /members/login にpostしたいってこと?
それならpluginをnullしなきゃいけないのは当然よ
95nobodyさん:2010/08/01(日) 00:23:04 ID:???
そゆことっす。
んで、html->link()の時はplugin=null入れなきゃってのは前からやってたんですが、
formのケースが自分でかってに
plugin=nullなんて指定しなくても第一引数がPlugin.Memberとかでない限り大丈夫だと思ってたんです。
でもそうじゃなかったと。
サーセン
96nobodyさん:2010/08/01(日) 08:44:34 ID:???
そだね
基本的に現在のURLを残そうとするからね
97nobodyさん:2010/08/01(日) 09:04:08 ID:???
でも、なぜかpassは残してくれないんだよなぁ
98nobodyさん:2010/08/02(月) 12:35:29 ID:n6/Fh0gL
解決できない><
知恵をお貸しくだされ

入力任意の日付項目があって
viewで
$form->input('A',array('type'=>'date','empty'=>'','selected'=>'' ・・・
ってしたときに
modelでvalidateを下記のように設定する
'A' => array(
   'rule' => array(
    'allowEmpty' => true,
    'message' => '正しい日付を選択して下さい'
)
),
で設定すると入力フォームで年月日を全部選択しないとmodelで値が
取れないからどうしたらいいか迷ってる。

一番簡単な方法は'type'=>'date'を使わないで
年月日を別々に作っちゃうことだけど
それ以外の方法でなにかないかな?
99nobodyさん:2010/08/02(月) 12:53:48 ID:???
しらんがどうしてもだめなら独自ルール作ればいいじゃん
超簡単にかけるでしょ
100nobodyさん:2010/08/02(月) 13:48:24 ID:???
belongsToとかで複数テーブルを連携させるとき、その複数テーブルに存在する共通のカラムを
findのconditionで指定した場合(例えば $condritions=array('xxx'=>'aaa')など)
「Column 'xxx' in where clause is ambiguous」
というエラーが発生します。

$condritions=array('(テーブル名).xxx'=>'aaa')
というようにテーブル名を条件指定のときに付与すれば回避できるのですが、
テーブル名を直接記述するのもフレームワーク的にしっくりきません。

他にこのエラーの回避方法などありますでしょうか?
101nobodyさん:2010/08/02(月) 13:51:18 ID:n6/Fh0gL
>>99
99さん返信ありがとです
98ですが、独自ルールの前に値がmodelでは取れないので困っているんです
viewでは取れているのですが^^;;;
具体的には
'A' => array(
'rule' => 'validateData',
'message' => '正しい日付を選択して下さい'
),

##データValidate関数
##$this->data[$this->name][$key]['year']と
##$this->data[$this->name][$key]['month']と
##$this->data[$this->name][$key]['day']がとれない;;
##'A'というkeyで値が取れている。ひとつでも選択されてないと値が空白になる
##という理由で独自に作ってもだめです><
function validateData($field=array()) {
foreach($field as $key => $val){
if($key=='A'){
if(!empty($this->data[$this->name][$key]['year']) && !empty($this->data[$this->name]['month']) && !empty($this->data[$this->name]['day'])){
return checkdate($this->data[$this->name]['month'],$this->data[$this->name]['day'],$this->data[$this->name]['year']);
}else if(empty($this->data[$this->name]['year']) && empty($this->data[$this->name]['month']) && empty($this->data[$this->name]['day'])){
return true;
}else{
return false;
}
}
}
return true;
}
102nobodyさん:2010/08/02(月) 14:03:00 ID:???
>>101
次からsageてくれないか?
103nobodyさん:2010/08/02(月) 14:05:01 ID:???
>>100
http://book.cakephp.org/ja/view/1018/find
のソースをよーく見てね
104100:2010/08/02(月) 14:10:02 ID:???
>>103
ありがとうございました。
conditionsの指定はカラム名だけでOKなものと思い込んでいました。。。
モデル名の付与がそもそも正しいんですね。
105nobodyさん:2010/08/02(月) 14:36:00 ID:???
>>101
validateData()内で
dump($field);
するとどうなるの
106nobodyさん:2010/08/02(月) 14:39:32 ID:???
なるほど。
yearだけ入力されて送信されても、ほかが空っぽだと、何も入ってないってこと?
$this->data[$this->name]['year']じゃなくて
$this->data[$this->name]とかにYYYY-MM-DDな感じに加工されたテキストで入ってなかったっけ?
107nobodyさん:2010/08/02(月) 14:54:10 ID:???
98です。解決しました。みなさまありがとうございました。

$form->input('A',array('empty' => array('00'=>'--'),'selected' => '' ,

emptyオプションに配列を入れてVALUEを設定しました。
これで一応解決しました

本当は年月日別々にemptyを設定しようかと思ったんですが
書き方がわからなかった&時間がなかったという理由で上記で
一応解決とさせていただきました。

以下返信してくれた方へのレス

>>102
書き込むのは初めてだったのですまん。
たぶんこれで下がっていると思われ

>>105
debugger::dump($field);
結果はNULLが入った;;
array(
"A" => null
)

>>106
そうです。
$this->data[$this->name]がNULLになっちゃうんです
108nobodyさん:2010/08/02(月) 22:28:51 ID:???
>>100
エラーメッセージ読もうよ。。。
「Column 'xxx' in where clause is ambiguous」
109Beginner:2010/08/02(月) 22:44:27 ID:???
只今、CakePHP1.2.6 で掲示板を作成しています。
ThreadモデルとResponseモデルがあり、
◆Threadテーブル
・id int
・title text
・created datetime
・modifired datetime

◆Responseテーブル
・id int
・thread_id int
・comment text
・created datetime
・modifired datetime

Thread hasMany Response、Response belongsTo Threadになっています。
110Beginner:2010/08/02(月) 22:45:34 ID:???
続きです

Responseテーブルの件数(10件)毎にpaginateを実行したいと思っています。

イメージとしては、

[1][2][3][4][5](ページング)
-------------------------------
スレッド1: 
-------------------------------
1 名前: Aさん 投稿日: 2010/07/23(金) 09:13:26
hogehoge1
piyopiyo1

2 名前: Bさん 投稿日: 2010/07/23(金) 09:13:26
hogehoge2
piyopiyo2

-------------------------------
[1][2][3][4][5](ページング)

こんな感じです。

Containableビヘビアを使用して、データを取得しています。(findではデータの取得が出来ました)

でもpaginateが出来ません。
どのようにすれば出来るでしょうか?

以下のような方法しかないのでしょうか?
http://book.cakephp.org/ja/view/249/
4.9.4 カスタムしたクエリによるページ付け
111nobodyさん:2010/08/03(火) 00:28:24 ID:???
>>110
paginateの条件指定の周りはどう書いてるの?
$this->paginate('Response')
でいけると思うんだけど。
112nobodyさん:2010/08/03(火) 03:16:32 ID:???
>>108
質問の意味を理解しな
113nobodyさん:2010/08/04(水) 11:55:21 ID:???
講師がいきなりガンダムの話しをしてきた・・・
http://jbbs.livedoor.jp/bbs/read.cgi/internet/6235/1265358917/
114nobodyさん:2010/08/04(水) 23:13:48 ID:???
URLのパラメーターにスラッシュが入っていると上手く処理ができないというのは
http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=447&forum=3
この辺とかで既出だけど、パラメータにプラス記号が入っていても上手く処理できないというのは既出?

たとえば/hoge+fugaにアクセスすると/hoge fugaとか/hoge%20fugaと同じ扱いになっちゃう
たぶんhtaccessでURL自体をindex.php?url=に渡してGETパラメーター扱いにしてるから
+がスペースと同じになっちゃうと思うんだけど・・・

とりあえず二重エンコードで回避してみたけど、あまりいい手段とも思えない。
何か他に回避策はないかな?
115nobodyさん:2010/08/04(水) 23:18:29 ID:???
>>114に書き忘れたけど+を一回エンコードして/hoge%2Bfugaにしてもダメだった。
二回エンコードすると+がそのままパラメーターとして渡る
116nobodyさん:2010/08/04(水) 23:37:01 ID:???
英文だけど、ちょっと情報があるね
rawurlencodeで解決するかと思いきや、ダメっぽい

$_SERVER['REDIRECT_QUERY_STRING'];
$_SERVER['REDIRECT_URL'];
$_SERVER['REQUEST_URI'];
とかから持って来ちゃったら?とも書いてある

http://osdir.com/ml/CakePHP/2009-01/msg00954.html
http://groups.google.com/group/cake-php/browse_thread/thread/23d82b527476c8cf
117nobodyさん:2010/08/05(木) 02:26:48 ID:???
これってフロントコントローラのFWなら仕方ないことなの?
symfonyとかrailsはどうなってるんだろう・・・?
118nobodyさん:2010/08/05(木) 03:16:57 ID:???
http://www.cpa-lab.com/tech/03
http://d.hatena.ne.jp/ruby-U/20090618/1245332725
このあたりのhtaccessのmod_rewriteで勝手にパラメーターがデコードされてるのが原因なのかな
119nobodyさん:2010/08/05(木) 03:30:02 ID:???
URLと得られるパラメーターの検証してみた
1. /hoge hoge -> hoge hoge
2. /hoge%20hoge -> hoge hoge (スペースをエンコード)
3. /hoge+hoge -> hoge hoge
4. /hoge%2Bhoge -> hoge hoge (+をエンコード)
5. /hoge%252Bhoge -> hoge+hoge (+を二回エンコード)
挙動としておかしいのは4と5で、それぞれ本来はhoge+hogeとhoge%2Bhogeが得られるはずなんだよな
一回余計にデコードされてる
120118,119:2010/08/05(木) 16:02:35 ID:nxLYetG6
引き続き検証
index.phpに渡った時点で>>119のデコードが確認できた
なので、これはcakeの問題と言うより>>118に書いたようにhtaccessの仕様のようだね

1. 最初にapacheがデコードして、mod_rewriteで/index.php?url=hoge+hogeとして解釈される
2. GETパラメーターでは+はスペースの代わりに使われるので、$_GET['url']の中身はhoge hogeになる

さらに/について
%2Fをパラメーターとして渡すと区切り文字として扱われてしまうのは>>114にも書かれているとおり
1. /hoge/hoge/hoge
2. /hoge/hoge%2Fhoge (1回エンコード)
3. /hoge/hoge%252Fhoge (2回エンコード)
のすべてのパターンで$_GET['url']の中身がhoge/hoge/hogeになってしまう
hoge/hoge%2Fhogeとして受け取りたい場合には
4. /hoge/hoge%25252Fhoge
と3回エンコードしないといけない
ちなみにallowEncodedSlashesがonじゃない場合は2は404になるけど、1
121nobodyさん:2010/08/05(木) 16:07:11 ID:???
途中で送信してしまった

ちなみにallowEncodedSlashesがonじゃない場合は2は404になるけど、1、3、4の挙動は同じ
これらに関してスマートな解決方法は思いつかないので、誰か他の人にパス
122nobodyさん:2010/08/08(日) 18:03:07 ID:???
みんなテスト書いてる?最近fixtureが肥大化して、1つテスト追加すると別のテストが通らなくなる地獄で死にそうなんだが・・・
123nobodyさん:2010/08/08(日) 18:11:12 ID:???
それが大事なんじゃないか
124nobodyさん:2010/08/08(日) 19:11:13 ID:???
別のテストツール使ったほうが…
125nobodyさん:2010/08/08(日) 22:19:24 ID:???
http://cakephp.lighthouseapp.com/projects/42648/tickets/851-fopen-warnings

まったく話題にならないけど、このバグで困っている人いないの?
126nobodyさん:2010/08/08(日) 22:47:28 ID:???
windows7限定でfopen使ったときか…
windows7上で開発してる人は少ないだろうし、fopenも滅多に使わないだろうから、
あんまり遭遇する人がいないんじゃない
127nobodyさん:2010/08/08(日) 22:58:49 ID:???
みんなテストツール何使ってるの?
128nobodyさん:2010/08/08(日) 23:35:31 ID:???
>>126
Vistaでもエラーでるんだよ
fopenはキャッシュ読み込む時に使われているから、キャッシュの機能を意図的にオフに
しないかぎり、勝手に呼び出されるよ

本番環境はlinuxだから、linuxで発生しないって確証があれば気にはしないんだけどさ
129nobodyさん:2010/08/08(日) 23:54:58 ID:???
やってみればいいじゃん
130122:2010/08/09(月) 00:18:49 ID:???
言い方悪かったすまん

fixtureにAテストのためにテストデータ追加すると、Bテストではエラーがでる、つまり
データの整合性をfixture上で取るのが面倒だが、みんなどうやっているのかなと。
131nobodyさん:2010/08/09(月) 00:26:35 ID:???
>>129
本番環境では今のとこエラーは出てないよ

でも、それがlinuxではエラーが出ないって保証にはならんでしょ?
原因が特定されないと気持ち悪い
132nobodyさん:2010/08/09(月) 01:21:50 ID:???
>>131
出てないなら気にスンナ!
linuxでエラー出るなら、誰かから報告あがってるでしょ
133nobodyさん:2010/08/09(月) 04:02:03 ID:???
formHelperのinputでtypeに値設定しているとmaxlengthを取得してくれないってバグを誰か英語で報告してくれないかな?
134nobodyさん:2010/08/11(水) 23:32:47 ID:???
1.3でgroup byとかsumを使ったときに、結果をモデル名の配列に入れるにはどうしたらいいんでしょうか?
http://blog.livedoor.jp/loopus/archives/50214076.html
ここで
>$data = $this->Uriage->findAll(('1 = 1 group by customer_id', 'customer_id, sum(price) as "Uriage.sum_price"')
>
>という書き方をすると
>
>$data[x]['Uriage']['customer_id']
>$data[x]['Uriage']['sum_price']
>
>とキレイに入ってくれる。
というやり方が書かれているのですが、1.3だと as "Uriage.sum_price"とするとSQLエラーが出てしまいます
135nobodyさん:2010/08/12(木) 09:45:53 ID:???
136nobodyさん:2010/08/12(木) 10:21:52 ID:???
cakeのデフォルトファイルって減らせないかな?
うちで使っている糞鯖にファイルアップするだけでも、だいぶ時間がかかる
137nobodyさん:2010/08/12(木) 13:25:48 ID:???
>>135
ありがとうございます
virtualFields設定してgroupしたら、期待通りの結果が得られました
138nobodyさん:2010/08/12(木) 14:49:01 ID:???
>>136
フォークして、自前でカスタマイズする。
もしくは、もうやっているとともうけど、lnしてひとつにまとめておく…とか。
139nobodyさん:2010/08/13(金) 00:02:04 ID:???
>136
固めてあげろ
140nobodyさん:2010/08/13(金) 05:51:38 ID:tji6Fsyn
携帯サイトを作っていて、1ソース3キャリア対応にしたいので
配布されている絵文字のライブラリを使おうと思っています。

こういう「DB使わないし、一部PHPのライブラリを使うだけ」
と言った状態でも、Cakeを使う事で幸せになれるでしょうか?
141nobodyさん:2010/08/13(金) 06:27:42 ID:???
人それぞれ案件それぞれ。

いいえって返ってくれば使わないでおこうと思ってたんなら、
君には恩恵は少ないと思うから使わなくていいと思う。
142nobodyさん:2010/08/13(金) 06:40:41 ID:???
そういう返答する奴多いけど、なんで天の邪鬼回答する必要がある?
人それぞれなんて言ったら、すべて人それぞれで終わりだろ。
143nobodyさん:2010/08/13(金) 08:56:35 ID:???
天邪鬼だと・・・?
144nobodyさん:2010/08/13(金) 10:06:54 ID:???
なんですべてが人それぞれなんだ?いみわからんこというな
145nobodyさん:2010/08/13(金) 10:54:57 ID:???
意味わかるだろ。「人それぞれ」って言っちゃったら
どんな要件にも人それぞれって回答したら済む。
146nobodyさん:2010/08/13(金) 11:32:58 ID:???
あ?
直近で言ったら
>>134の質問は人それぞれか?
147nobodyさん:2010/08/13(金) 11:44:43 ID:???
「人それぞれやり方は違う」って返答すればそうなるだろうな
148nobodyさん:2010/08/13(金) 11:45:58 ID:???
でも、>>135-139は具体的に回答してるけどな
149nobodyさん:2010/08/13(金) 11:48:59 ID:???
無駄レスいらね
150nobodyさん:2010/08/13(金) 12:21:38 ID:???
>>142
くだらないレスするくらいなら、ちゃんと質問に答えてやれよ

>>140
Cake専用の絵文字ライブラリなんてあったっけ?
Ktai Library for CakePHPなら単体でも動作したはずだよ
151nobodyさん:2010/08/13(金) 12:28:50 ID:???
>>142
>>140の質問なんて本当に個人の力量、経験次第じゃん。
どう答えろと?
152nobodyさん:2010/08/13(金) 12:33:28 ID:???
>>142の模範回答に期待
153nobodyさん:2010/08/13(金) 12:41:08 ID:???
模範解答も糞も、知らなければ答えなかったら良いだけだ。
「人それぞれ」って回答が一番糞だろ。無駄レス以下だ
154nobodyさん:2010/08/13(金) 12:49:51 ID:???
>>153
知らないんじゃなくて、人それぞれとしか言いようがないっていうことでしょ
>>140が人それぞれじゃないと思うのなら、自分で>>140にレスすればいい
他に誰も>>140に答えられなかったら「人それぞれ」が正解になるだけ
155nobodyさん:2010/08/13(金) 12:56:33 ID:???
>>154
いや、普通に>>150が答えてるじゃん。
俺でも「一部だけ使うならフレームワーク使わなくても良いんじゃないか?」
って書くな。

で、そう思ってスレ見たら>>141とかふざけたこと
書いてあったから気になっただけだ。これ言ったらどうしようもねーだろ
156nobodyさん:2010/08/13(金) 12:58:27 ID:???
>>141は別にふざけた回答でもなんでもない。そう思う君がおかしいんだよ。
157nobodyさん:2010/08/13(金) 12:59:41 ID:???
>>156
どこがどう「ふざけた回答じゃない」だ?何も解決できないじゃん。

「昼飯何食えばいい?」って質問に「好きな物食えばいいよ」って答えるようなもん。
158nobodyさん:2010/08/13(金) 13:01:49 ID:???
自分でそれ以上の恩恵を見いだせないなら不要って答えの何がふざけてるんだ?
エスパーじゃないんだから、あなたにはこれとこれとあとこれも有用です。
したがってCakePHPを使いなさいって答えられないよ
159nobodyさん:2010/08/13(金) 13:03:50 ID:???
エスパーほど高い能力いると思えないけどな。

俺は>>136を書いたけど、適当につぶやいたつもりが
普通にレスしてくれてたし。で、意見書こうと思ったらこれだ。
単に>>141は天の邪鬼なだけだろ。
160nobodyさん:2010/08/13(金) 13:03:53 ID:???
>>157
おいおいwww
「昼飯何食えばいい?」
実にどうでもいい質問だな。それこそ人それぞれでおk

お前はなんて答えてあげるんだい?ww
161nobodyさん:2010/08/13(金) 13:07:00 ID:???
>>160
じゃ、お前が「人それぞれ」って返答した時点で会話が終了するな
162nobodyさん:2010/08/13(金) 13:09:36 ID:???
>>155
ちょとおちつけよ
>>140の質問者はKtai Libraryなんて一言も書いてないぞ。
それでなんで「一部だけ使うならフレームワーク使わなくても良いんじゃないか?」
の回答に直結するんだ?CakePHP用に作られたプラグインやらライブラリが
すべてCakephpなしに動くなら君は正しいよ。そうじゃないだろ?

それとも何か?回答者はわざわざ行間読んでKtai Libraryにたどり着き回答する必要があるのか?
求めすぎだろ。頭ひやせ

携帯サイト用のライブラリーやプラグインはいくつかあるんだぞ
163nobodyさん:2010/08/13(金) 13:10:51 ID:???
質問者が暴れております
164nobodyさん:2010/08/13(金) 13:11:35 ID:???
>>162
待て待て。Ktai Library云々の話を持ち出すまでもなく
「一部で使うだけなら、CakePHPの恩恵が得られない」
と言う意味での>>155は別におかしくねーだろ。

逆におかしいと思ってもお前が判断するような事じゃねーよ
165nobodyさん:2010/08/13(金) 13:13:28 ID:???
わかったから消えろ
166nobodyさん:2010/08/13(金) 13:14:18 ID:???
>>164
その回答>>141とほとんど同じじゃね?wwww
167nobodyさん:2010/08/13(金) 13:15:24 ID:???
天の邪鬼()笑
168nobodyさん:2010/08/13(金) 13:17:33 ID:???
>>166
一周回って戻ってきたな
169nobodyさん:2010/08/13(金) 13:21:40 ID:???
ちなみに僕はそうめんを食べました
170nobodyさん:2010/08/13(金) 13:43:23 ID:???
匿名掲示板なんだから親身な回答を期待する方が間違い
期待する回答がもらえなかったら、もうちょっと詳しく
事例の説明をして、もう一回回答をもらおうとするのが
普通の質問者のスタイルじゃないか?
それを一回自分の期待する回答が得られなかったからといって
あまのじゃくだの何だの言うのなんて、質問者の立場が
わかってないとしか思えない
俺なんて質問してもレスさえもつかなくて、自分で
他人のふりして回答を書き込むのがしょっちゅうなんだぞ
見ず知らずの他人が金ももらわずに回答するんだから、
レスがついただけでもありがたく思わなきゃ
171nobodyさん:2010/08/13(金) 13:49:54 ID:???
>>166
なるほど全部>>141の自演か。
172nobodyさん:2010/08/13(金) 15:27:44 ID:???
始めてbakeを使ってみたんだが、凄いな・・・
適当にテーブル作ってbakeしたら、それだけでそこそこのサイトは完成する
173☆忍者Perl☆ ◆M5ZWRnXOj6 :2010/08/13(金) 23:36:15 ID:LkLBXJmk
PHPってばかしかいないね^^;

頭湧いてるバカばっかりwwwwwwwwwwwww
(笑)(笑)(笑)(笑)(笑)(笑)(笑)
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

だからなめられんだよクソwwwwwwwwwwwwwwwwwwwwww
174nobodyさん:2010/08/14(土) 00:23:57 ID:???
Perlerが威張るってww
PHPerって半数くらいはPerlもできるだろ
175nobodyさん:2010/08/14(土) 01:17:12 ID:???
belongsToの質問です。

3テーブルあります。
購入履歴(Histories)テーブル:id、fruit_id、user_id
果物(Fruits)テーブル:id、producer_id
生産者(Producers)テーブル:id、rank(A、B、C、D・・・)

下記のようなbelongsToの設定をモデルにしてあります
(要するに多階層のbelongsToです)
History:belongsTo=Fruits
Fruit:belongsTo=Producer

recursive=2でHistoryモデルからfindする際、
「Producer.rank='B'」
を条件に指定したのですが、belongsToで下位の階層のカラムを条件に指定することは
可能なのでしょうか?
上記条件を指定すると「Unknown column」となります。
なお条件を指定しない場合、きちんと2階層目までのデータは取得できています。
176nobodyさん:2010/08/14(土) 01:36:15 ID:???
できるはすだよ
条件指定してない時には正しくデータがとれてると言うことは
アソシエーション自体は正しいから、conditionsが間違ってるっぽいな
発行したSQL文かconditionsの内容書いてみ
177175:2010/08/14(土) 02:04:35 ID:???
条件指定なしの場合のSQL文を確認しました。
1.SELECT `History`.`id`, `History`.`fruit_id`, `History`.`user_id`, `Fruit`.`id`, `Fruit`.`producer_id` FROM `histories` AS `History` LEFT JOIN `fruits` AS `Fruit` ON (`History`.`fruit_id` = `Fruit`.`id`) WHERE 1 = 1
2.SELECT `Fruit`.`id`, `Fruit`.`producer_id` FROM `fruits` AS `Fruit` WHERE `Fruit`.`id` = 1
3.SELECT `Producer`.`id`, `Producer`.`rank` FROM `producers` AS `Producer` WHERE `Producer`.`id` = 1
4.SELECT `Fruit`.`id`, `Fruit`.`producer_id` FROM `fruits` AS `Fruit` WHERE `Fruit`.`id` = 2
5.SELECT `Producer`.`id`, `Producer`.`rank` FROM `producers` AS `Producer` WHERE `Producer`.`id` = 2
結果は
Array(
[0] => Array(
[History] => Array(
[id] => 1
[fruit_id] => 1
[user_id] => 1)
[Fruit] => Array(
[id] => 1
[producer_id] => 1
[Producer] => Array(
[id] => 1
[rank] => A)))
[1] => Array(
[History] => Array(
[id] => 2
[fruit_id] => 2
[user_id] => 1)
[Fruit] => Array(
[id] => 2
[producer_id] => 2
[Producer] => Array(
[id] => 2
[rank] => B))))
178175:2010/08/14(土) 02:06:46 ID:???
SQL文が5回発行されていました。
多階層のJOIN文を作成して1度でデータを取得していると思っていたのですが、
1階層目までしかJOINせず、その先は個別にデータを取得してるみたいです。

このような分割をされると、下位の階層のカラムを条件で指定するのは無理ですね・・・。
179175:2010/08/14(土) 02:07:50 ID:???
すみません、試したバージョンは1.3.3です。
180176:2010/08/14(土) 03:18:02 ID:???
あー、すまん
belongsToでも2階層先はSQL分割されちゃうのか

なんなら
Fruit hasMany History
Fruit belongsTo Producer
にして
$this->Fruit->find('all', array('conditions'=>array('Producer.rank'=>'B')))
とかにしたらどうかね

ちょっと酒入っているので自信がないが
181175:2010/08/14(土) 03:51:18 ID:???
>>180
ありがとうございます。
今回例に出したのは2階層なんですが、実は4階層のケースでどうしようか悩んでいるのです・・・。

ちなみにお教え頂いた
「特定のモデルを中心に、hasManyとbelongsToを使って上下1階層(合計2階層)を取得する」
方法は成功しました(SQLは2文、条件指定も可)。2階層までならこの方法でいけますね。

今回のような2階層以上のデータの芋づる取得はそんなに多いケースではないので、
とりあえずMySQL上に多段JOINしたViewを定義して、そのView用のmodelを使用しようと思います。
182nobodyさん:2010/08/14(土) 08:00:26 ID:???
Containable Behavior でいけそうなきがする
183Perl Assasin ◆lNsIJTdtUY :2010/08/14(土) 08:14:48 ID:ExEQpWlE
>>174
そろそろうざいわ

言っとくけど俺をあまりナメないほうがいいよ
VIPでコテハンやってるしクソコテ潰すくらいの影響力は持ってるから
くだらないことで刺激して後悔しないようにね
184nobodyさん:2010/08/14(土) 11:53:15 ID:???
バージョン1.3.3を使っているのですが、モデル内でセッションを使うよい方法はないでしょうか?

今まではモデル内でセッション使えなかったようですが、1.3からできるかもとの情報が。
しかし、試してみたところ、上手く行きませんでした。。

参考記事
http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=1989&forum=6
185176:2010/08/14(土) 13:11:08 ID:???
>>181
http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=1114&forum=6
ググったら明示的にJOINする方法があった
186▲☆◎Perl忍者◎☆▼ ◆M5ZWRnXOj6 :2010/08/16(月) 19:25:14 ID:m+WY7Mxd
phpやってるやつってバカばっかだね
死んでくれない?(笑)
187nobodyさん:2010/08/16(月) 19:30:06 ID:???
分かった
188nobodyさん:2010/08/16(月) 21:41:13 ID:???
まかせとけ!
189nobodyさん:2010/08/17(火) 22:14:24 ID:ZhW5Etfn
生成されたHTMLコードにゴミ(空白)が入ってしまいます。
ゴミはコントローラの処理後、ビューの処理前に入っているようです。
コントローラの処理とビューの処理の間に入りそうな処理は何がありますか?
念のため、phpの閉じタグ?>はソースの末尾に入れないようにしていますが、漏れがあるのでしょうか。
190nobodyさん:2010/08/17(火) 22:23:45 ID:ZebP+0w7
すいません、質問なんですが、

wysiwygエディターを使うことになりまして、
どれを使って良いのかわからないので、ご教授頂きたいのですが。

機能としては、文字の修飾、画像の貼り付け(できればローカルPCからダイレクト)が出来れば良いと考えております。

ライセンスは無償でフリーがベストです。

何か良い情報をお持ちの方、よろしくお願いします。
191nobodyさん:2010/08/17(火) 23:02:01 ID:???
>>189
PHPの閉じ忘れくらいしか思いつかんな
あとはapp_controllerあたりか
コンポーネント、ヘルパーとかを読まないプレーンなコントローラーを作って空白入るか確認した?
192nobodyさん:2010/08/18(水) 00:52:32 ID:???
>>190
あほなの?
193nobodyさん:2010/08/18(水) 01:37:26 ID:???
>>190
tinyMCEでいいんでないの?
ちょっと前は重くて嫌だったけどブラウザが充分早くなったし。
194nobodyさん:2010/08/18(水) 05:14:05 ID:???
CakePHP 1.3.2
CentOS 5.4

Htmlヘルパーのcssを使ってcssの指定をしていますが
http://xxxx.xxxx/test でアクセスするとcssが正しく反映されるのですが
http://xxxx.xxxx/test/ でアクセスしたり
http://xxxx.xxxx/test/regisger などでアクセスすると、cssが反映されません。

指定は、普通に$html->css('sample');のように行っており、
いずれの場合も出力されたソースを見ると
<link rel="stylesheet" type="text/css" href="css/sample.css" />
と返ってきています。
cssファイルはapp/webroot/cssに置いています。

どうすれば正しく反映されますでしょうか。
195nobodyさん:2010/08/18(水) 08:36:28 ID:???
>>194
webroot/.htaccess をチェック
196nobodyさん:2010/08/18(水) 10:02:29 ID:???
>>184
本来なら

<link rel="stylesheet" type="text/css" href="/css/sample.css" />

ってなるはずだから自分でどっか弄ったんだろ?
Cakeのバグじゃなさそうだから、自分でコード追って解決しろよ
197nobodyさん:2010/08/18(水) 11:21:26 ID:???
>>195
見てみました。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /testtest/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>

>>194は間違いで、URLは
http://xxxx.xxxx/testtest/test/
みたいな感じで、testtestがサブディレクトリ名で、testがコントローラ名です。

RewriteBase /testtest/app/webroot/
RewriteBase /testtest/app/
等も試してみましたが、結果は同じでした。

>>196
cakeの下はいじってないです。
とりあえず
$html->css('/css/sample');
としてみると
<link rel="stylesheet" type="text/css" href="/css/sample.css" />
が返ってきましたが、やはりcssは反映されませんでした。
198nobodyさん:2010/08/18(水) 11:58:04 ID:???
199nobodyさん:2010/08/18(水) 12:25:14 ID:???
外部CSSとかJavascriptをCakeの昨日使わなくても
bootstrap.phpに定数書いて参照させる方が確実だぞ

define('WEBROOT_URL', 'http://localhost/');

<link rel="stylesheet" type="text/css" href="<?php echo WEBROOT_URL;?>sample.css" />

みたいにさ。俺もaリンクもこれでやってるよ。
200nobodyさん:2010/08/18(水) 12:33:27 ID:???
>>199
アホだろ
定数もヘルパーも用意されてるだろ
情報二元化推奨して喜ぶなよアホ
201nobodyさん:2010/08/18(水) 13:10:08 ID:???
>>200
定数の件はまあ好みだから良いとして、
ヘルパー使わない事をアホだと言われるのは違うと思うがな。

お前みたいに自分だけで開発してて
パフォーマンスも気にしないような奴なら使えばいいよ
202nobodyさん:2010/08/18(水) 13:21:16 ID:???
情報二元化推奨して喜ぶなよアホ = ヘルパー使わない事をアホ
203nobodyさん:2010/08/18(水) 13:23:44 ID:???
独自定数用意して・・・ってそれこそ一人で開発してるからできる技じゃない?
速度的にきになるなら別のところで対処しろよキャッシュしとくとかさぁ
Cakeのスレでヘルパー使うの否定して、独自定数定義しろってまずおかしいだろw
てかフレームワーク使ってる意味なくね?
204nobodyさん:2010/08/18(水) 13:26:50 ID:???
>>203
俺が馬鹿なのかと思ってググったら、
同じ事やっている奴いっぱいいるんだが。

別にRouter::url()で表示しても良いだろうが、
そこまで突っ込んだり馬鹿にしたりする事か?

ヘルパーにしても使わない方がパフォーマンスするのは公式の通りだし、
テンプレもわかりやすいだろ。単に叩きたいだけならそう言えよ
205nobodyさん:2010/08/18(水) 13:28:51 ID:???
わかったから勝手に安心してろ。
206nobodyさん:2010/08/18(水) 13:36:58 ID:???
ハードコーディング推奨派
207nobodyさん:2010/08/18(水) 13:50:49 ID:???
>>199
CSSっていう定数知ってる?
自分だけで開発しているんじゃないのなら、なおさら無意味な定数を作らない方がいいよ
208nobodyさん:2010/08/18(水) 14:32:04 ID:???
CakePHP 1.3.3 での、フォームの配列項目とvalideteに関する質問が在ります。

http://book.cakephp.org/ja/view/1391/Field-naming-convention

では name="data[Modelname][0][fieldname]" といった、配列によるフォーム生成を示していますが
この、同じモデルを使っているvalideteはどうすればいいのでしょう?

配列のままモデルに投げてもvalideteに引っかかりませんし(常にtrue)、
配列をばらして個々にモデルに投げても、valideteによるエラーメッセージはフォームに反映されません。
209nobodyさん:2010/08/18(水) 22:53:44 ID:???
>>208
たいした規模じゃないし、理解もすすむと思って
こういう場合Modelから先をXdebugなりで追うといいよ。
210nobodyさん:2010/08/19(木) 09:23:41 ID:???
>>208
saveAll() の 'validates' => "first" は?
211nobodyさん:2010/08/19(木) 09:59:59 ID:???
fat model, skinny contoroller で質問です。

僕のコントローラーはそれはそれは太っているので、師匠にもっと痩せさせろと言われました。
「コントローラのそれぞれのファンクションはだいたい10行以内にまとめる。長くても20行ぐらい」と言われました。

次に師匠に会う時まで、できる限りコントローラーをダイエットさせたいのですが、気になる部分を質問させてくださいませ。

1. if などのビジネスロジックは一切コントローラーに書かないほうがよいか?
 例えば、 if(empty(this->data)) などの単純な構造も?
  
2. あまりにもコントローラーをシンプルにしすぎると、コントローラのコードを見ても、なにをやっているのかが
  わからないようにならないか?

特に、2の問題で頭を悩ましております。

 
212nobodyさん:2010/08/19(木) 10:22:19 ID:???
>>211
あくまで私見でレス

1. そんなことない。書く。 if(empty($this->data))使わない理由無い
2. 処理の流れが分かるように書く。ロジックはモデルに

10行以内とかは、目安として伝えてくれたんじゃないの?
とらわれると本末転倒
213nobodyさん:2010/08/19(木) 10:31:01 ID:???
>>212

ナイスな指摘ありがとうございます!

こだわりすぎて、なんでもかんでもモデルに詰め込んでしまい、
処理の流れが逆に分かりにくくなるのは本末転倒ということですね。
214nobodyさん:2010/08/19(木) 10:36:17 ID:???
Cこういうアクションだからこういうデータが欲しいな
Mじゃあ僕の持ってるデータをこういうふうに加工して・・・はい、どうぞ
215nobodyさん:2010/08/19(木) 11:20:34 ID:???
ちなみに、 モデルとコントローラ間での受け渡しでは、変数を配列に格納して受け渡す方法と、
セッションにして受け渡す方法があります。

セッションを使ったほうが簡単な気がするのですが、できる限り変数で受け渡さないと
サーバに負担がかかってページが重くなるという認識は合っているでしょうか?


//こんな感じで変数で受け渡したほうが速い??
$parsed_xml = $this->Amazon->request_xml($category,$date,$page_list,$page_number);
216nobodyさん:2010/08/19(木) 11:51:07 ID:???
はぁ?
217nobodyさん:2010/08/19(木) 12:43:08 ID:???
ここに書く前に動かせよw
218nobodyさん:2010/08/19(木) 12:55:09 ID:???
>>215
自分でベンチマークとってみなよ。そんで結果報告してね。
219nobodyさん:2010/08/19(木) 21:33:24 ID:Px7+fb0W
TinyMCE(WYSIWYGエディター) + Mad File Manager で画像アップロード機能を実装しました。

参考サイト:http://blog.aidream.jp/cakephp/cakephp-wysiwyg-editor-tinymce-helper-1408.html

そこで、質問なんですが、

現状だと、Aさんがアップロードした画像は、Bさんも見れてしまう。
それは避けたい。
Aさんがアップロードした画像は、Aさん以外にユーザには見せないようにすることは可能でしょうか?


以上、よろしくお願いいたします。
220nobodyさん:2010/08/19(木) 22:02:59 ID:???
>>219
もちろん可能。

つうかマニュアル一通り読んでみようや。
その上で、ああこれとこれをこう使えば○○ができるな。
って言うのがプログラムの一番面白い所だと思うんだけど。
221nobodyさん:2010/08/20(金) 00:16:47 ID:???
>>220
お返事、ありがとうございます。

マニュアルを一通り、読んでいろいろ試してみます。
もし、わからない点があれば、また、ここに書き込みますので、
ご教授のほどお願いします。
222nobodyさん:2010/08/20(金) 01:04:57 ID:???
>215
速い遅い以前に、どこでも触ることができるセッションでパラメータを渡すのは怖くね?
呼び出したメソッドで処理される前に、どこかで変更されない保証があるならともかく
223215:2010/08/20(金) 07:48:15 ID:???
どうもアドバイスありがとうございます。

セッションがどうしても必要な時以外は、変数で受け渡すことにいたします!
224nobodyさん:2010/08/20(金) 10:29:49 ID:???
>>223
コントローラーとモデル間の受け渡しは絶対セッション使っちゃダメだろ。

基本的にセッション有効期間中、メモリーにデータが残るんだぞ。
毎回ちゃんと消せばいいけど、そんなプログラムはダサ過ぎだろ。

作った奴以外がプログラムを読んだとき、どこでデータが破棄されるかも分かりづらい。


225nobodyさん:2010/08/20(金) 10:48:22 ID:???
綺麗にMとCが分かれているような構造のソース見てみたいなぁ。どっか公開してないかな。
226nobodyさん:2010/08/20(金) 13:26:24 ID:???
CakePHPを使ったMVC設計のベストプラクティス - Sooey
http://old-journal.sooey.com/2008/03/26/717/
227忍者Perl ◆M5ZWRnXOj6 :2010/08/20(金) 16:07:53 ID:2R5mBLkn
なにこのクソスレ!

痛いっすね!!!

マジパネーッス!!

ケーキとかネーミング痛すぎっすね!!マッスルPHPに変えなさいよ! お尻プリプリ!!
228nobodyさん:2010/08/20(金) 16:16:00 ID:???
NGワードを登録するだけの簡単なお仕事
229nobodyさん:2010/08/20(金) 22:11:44 ID:sucUVck5
まだCakePHP使ってる人っているのか
ある意味感心する
230nobodyさん:2010/08/21(土) 01:26:07 ID:???
レス乞食
231nobodyさん:2010/08/21(土) 08:35:11 ID:???
>229
ありがとう。がんばるよ。
232nobodyさん:2010/08/21(土) 09:45:37 ID:???
感心されちゃった(テヘッ
233nobodyさん:2010/08/23(月) 18:17:04 ID:???
http://bakery.cakephp.org/articles/view/cakephp-1-2-8-released

1.2系もまだメンテ続けるのね
234Perl仙人 ◆M5ZWRnXOj6 :2010/08/23(月) 23:45:48 ID:3hx9uhRe
3キモ言語の特徴(Ruby PHP Python)

1、クソ発想力が無いゴミ他人のまね ◎◎ッターとか作りだすw
2、とりあえず流行に便乗 先を見通せない
3、メディアストリームにかける
4、ネットなのに敬語 (言い訳 ネットだから敬語でしょぉ
5、脳味噌が生まれつき弱い 考える力が無い(笑)
6、Perlerに絶対勝てない無理無理(笑)
7、最強とか最高とかいっちゃう 糞痛いやつら
8、ホリエとかIT著名人をフォローしちゃう やたらとMatzとかわめきだす
9、クソガリ クソチビなせいか脳味噌に栄養が行き届かない
10、力が無い 非力w 喧嘩したら速攻殺される(笑) 頭で勝てるとほざいてるがバールで殴られて即死
11、ブログなどツイッタの画像が2次元 美少女とかPHP厨に多い
12、くだらないつまらないゴミツイートをRTしまくる真性マジキムチ行為w
13、なにかしろPythonをひっぱってほざきだす 今時 今時って言葉が大好き
14、今時なわりに成果物がクソ  クソwebアプリ乙津です
15、存在が間違え 自殺してください死んでくださいお願いします(笑)
16、武道やってるとかいうが 合気道(失笑) クソガリでベンチが100kg未満(笑)


(笑)
235nobodyさん:2010/08/23(月) 23:55:07 ID:???
PHPを5年やってますが
全部当てはまってます。
236219 です:2010/08/24(火) 00:11:15 ID:5qdug9Ot
>>219 ←元スレ

>>220
なんとなく、ここを変更すれば、できるというのは確認できました。

アップロードファイルを画像ファイル(jpeg,gif,png)に制限することも可能ですよね?
何か触れてはいけない、本体のソースコードをいじりそうなんですが、
そんなことはないですよね?
僕が何かを間違ってますよね?
237nobodyさん:2010/08/24(火) 00:20:57 ID:???
うんもう諦めてくれスレ違いなんだ
あと ←元スレ ってなんだ。なんか君変なんだすごく。
238nobodyさん:2010/08/24(火) 08:23:51 ID:???
>>236
本体以外の話は使っている人がいないとレスまともなレスが付かないよ
とくに
>>219 ←元レス
のような大雑把な質問じゃーね
239nobodyさん:2010/08/24(火) 11:50:48 ID:???
こんなレベルでもCakePHPは使いこなせるってことだな、すげぇよCake!!
240nobodyさん:2010/08/24(火) 13:23:02 ID:???
優秀ってことだなFWとして
241nobodyさん:2010/08/24(火) 13:59:47 ID:???
1.3本注文しちゃった
レビューを見ると初心者向けな部分が多そうだけど、一応おさらいだ
http://www.kadoppe.net/archives/2010/08/book-cakephp-1-3.html
242nobodyさん:2010/08/24(火) 14:06:40 ID:???
>>241
俺も買った。
cakeは1.2から使ってるが、改めて読むには良い内容だと思うよ。
243nobodyさん:2010/08/24(火) 14:22:06 ID:???
宣伝乙
244nobodyさん:2010/08/24(火) 15:38:07 ID:???
>>241
自分も買った。
まだ全然読んでないけど、初版の <?= 部分が <?php echo に書き直されているっぽいのと
Jsヘルパーの加筆を確認した
245nobodyさん:2010/08/24(火) 16:28:14 ID:???
1.2本と内容は同じなの?
246Perl忍者 ◆M5ZWRnXOj6 :2010/08/24(火) 17:13:39 ID:jwes9+en
>>アップロードファイルを画像ファイル(jpeg,gif,png)に制限することも可能ですよね?

Perlでやれば一発なのに 脳味噌たりてないのかな
だからPHP

クソゴミダニウンコハゲシネカス存在が釣りクソゲンゴ世界3キモ言語っていわれるんだよ(笑)
247nobodyさん:2010/08/24(火) 17:24:40 ID:???
>>246
ありがとうございました
248Perl忍者 ◆M5ZWRnXOj6 :2010/08/24(火) 17:24:59 ID:jwes9+en
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)(笑)
249Perl忍者 ◆M5ZWRnXOj6 :2010/08/24(火) 17:28:09 ID:jwes9+en
俺は忍刀を奪うため

Perl隠れ7人衆から 忍刀を強奪したい
250Perl忍者 ◆M5ZWRnXOj6 :2010/08/24(火) 17:29:55 ID:jwes9+en
おう チャクラ負けしてるよ
251nobodyさん:2010/08/24(火) 17:30:03 ID:???
気違いすぎるw
252nobodyさん:2010/08/24(火) 17:31:30 ID:???
何かにつけて日本に文句つけてくる朝鮮人みたいなヤツだな
253nobodyさん:2010/08/24(火) 17:34:04 ID:???
というか、言語選ぶなよ
PHPとPerlなんて殆ど似てるんだから案件に寄って両方請け負うよ
254Perl忍者 ◆M5ZWRnXOj6 :2010/08/24(火) 17:38:30 ID:jwes9+en
俺の通り名は 天秤のPerl忍者

何故なら、態度や気分が 天秤のようにかわる

そのため、突然殺人衝動にかられて社員とかをやってしまう
前はMixiで働いてたが 突然殺人衝動においやられて PHPをつかってるやつの声帯を手でえぐってやってしまった・・・
一面中、血が飛び出て首から血が噴水のように飛び出ていた。

オレ「オレなにやってんだ・・・ひいいいいいええええええええ!!!!!!!!!」

またまたPHPをやってるやつをやってしまった

グシャッ!!!!!!!  社員「キャーーーーーーーーーーーーーーーーーー!!!


俺はその日をさかえに PHPユーザたちから社内いじめにあって 俺をPHPやってるやつが憎いと思った
255Perl忍者 ◆M5ZWRnXOj6 :2010/08/24(火) 17:39:30 ID:jwes9+en
>>251-253
ごめん
256Perl忍者 ◆M5ZWRnXOj6 :2010/08/24(火) 17:40:53 ID:jwes9+en
>>253
っで?
君はバカだろ PHPやってろよ君は

僕はIT業界で働かないからどうでも良いけどね(笑)
257nobodyさん:2010/08/24(火) 17:44:14 ID:???
>9 :Perl忍者仙人モード ◆M5ZWRnXOj6 [] 投稿日:2010-08-22 22:30:40
>俺はPHP厨達にさんざんいじめられきた

>親にも見放され、IT業界にも見放され 俺はIT業界に復讐をするため生きていく

>そして俺はお世話になったPerlerやプログラマを抹殺し、凄い力を手に入れた 一瞬でコードを解読する目
>その目は複雑なPerlのコードでも 1万倍に上がった動体視力で一気に解析する

>もう俺に勝てる者はいない

>あの最強Rubyist まつもとひろゆきが俺の力に脅威を覚えて  俺を倒すようなプロジェクトを立ち上げていた
>俺はRubyistに囲まれたが この眼術で一瞬でかたをつけた
258Perl忍者 ◆M5ZWRnXOj6 :2010/08/24(火) 17:48:04 ID:jwes9+en
オレはようやく理解した
オレは復讐者
たとえ悪魔に身を委ねようとも
力を手に入れなきゃならない道にいる

Perlの花は2度咲かない!!!!!!!!!!
259nobodyさん:2010/08/24(火) 17:50:45 ID:???
Perlは素晴らしい言語だよ
お前がPerlって名前背負って荒らしてるとPerlに傷がつくからやめろよな

あと、早く病気治せよ
260Perl忍者 ◆M5ZWRnXOj6 :2010/08/24(火) 19:33:38 ID:jwes9+en
259に裏で荒らしてPerl利用者を増やせっていってお金もらいました

259「2chでPerl忍者っていうコテで発言しまくれw」
オレ「はい」
259「これでPerl利用者増えるぞwwww」
オレ「うん」
259「誰にも言うなよwwww」
オレ「絶対言いません」

っていわれて50万貰いました
261Perl忍者 ◆M5ZWRnXOj6 :2010/08/24(火) 19:58:23 ID:jwes9+en
259のPerlを有名にさせる作戦は終りました
262nobodyさん:2010/08/24(火) 20:05:45 ID:???
ただのコピペとかメインの荒らしと思いきや
全部書いてるんだ。こいつマジでビョーキだろ
うわああああ
263nobodyさん:2010/08/24(火) 20:45:05 ID:???
怖いよね
264Perl忍者 ◆M5ZWRnXOj6 :2010/08/24(火) 21:07:34 ID:jwes9+en
っと3キモ言語の下っ端がわめいています
265nobodyさん:2010/08/25(水) 14:33:29 ID:???
ワロタ
早くこいつを捕まえないとそのうち人殺すぞ
266241:2010/08/25(水) 21:46:12 ID:???
今日「CakePHP 1.3によるWebアプリケーション開発」が届いて読んでるけど、ちょっといまいちな内容だな・・・

チャプター2まで読んで気になった点

・セットアップ時にSecurity.saltとcipherSeedを変更してない
   「今は変更しなくても特に問題ないので」と書いてあるが、Noticeはなるべく早く消すべきじゃないだろうか
・セットアップ時のtmpのパーミッション変更に触れてない
   pages/homeのスクリーンショットではYour tmp directory is writableになっている
   XAMPP前提で書かれてるせいだろうか?知らないとLinuxの人とかはまるだろうし、一応触れて欲しい。
・なぜかapp/view/layout/default.ctpではなくapp/view/layout/hello.ctpを作ってコントローラーでレイアウト指定してる
   まずはレイアウト指定しないで使えるdefault.ctp使った方がわかりやすいと思うんだが・・・
   app/view/layout/default.ctpについて記述は今のところない。
・controllerで$this->set("result", htmlspecialchars($result));
   htmlspecialcharsはviewでやるべきなんじゃないだろうか
   それに加えてh()についての解説は(インデックスに載っていないので)たぶんない
   以後はhtmlspecialcharsが必要そうなシーンでh()ではなくSanitize::stripScriptsとか使ってる、なぜだ
・controllerでhtmlタグ書きまくり
   最終的に「controllerにタグを書くのは良くないので、こういうのは全部viewに移しましょう」と修正するのかと
   思いきや、そのまま説明が終わってしまった
   序盤だから説明をはしょるためなんだろうけど、せっかくのフレームワークでMVC切り分けないのはちょっと・・・
267241:2010/08/25(水) 21:57:16 ID:???
誤植
・P53 3行目]閉じ忘れ
・P65,P71, 修正されているはずの、<?= が<?php echo になってない

その他
・本文の$マークが縦棒二本で見づらい・・・
・viewがきれいじゃない(好みの問題かもしれないけど)
   <?php echo $a; ?>
   <br />
   <?php echo $b; ?>
   ではなく
   <?php
   echo $a;
   echo "<br />";
   echo $b;
   ?>
   みたいな書き方をするので妙に見づらい。

という感じで、細かい突っ込みどころもあるけど、なんだか不安になる内容だった
>>241のレビューでも誤植が多いと突っ込まれていたけど、コードレビュアーとかいないのかな?
268nobodyさん:2010/08/25(水) 22:01:18 ID:???
>>266
宣伝乙とか言われてたけど、色々と酷いなw
269nobodyさん:2010/08/25(水) 22:03:14 ID:???
ひでーな読みたくねーわ
270nobodyさん:2010/08/25(水) 22:11:24 ID:???
>>267
個人的には後者のコードの方が好きだけどな
もっとも、自分で書くなら
<? php
echo $a.'<br />'.$b;
?>
ってな感じにするけど。
271270:2010/08/25(水) 22:13:12 ID:???
地味に間違えてるわorz
272nobodyさん:2010/08/25(水) 22:26:25 ID:???
最後まで読めばいいんじゃねとりあえず
そんな俺は買ったけどまだ読んでないw
273241:2010/08/26(木) 00:42:52 ID:???
Chapter3で気になったところ

・pr()を使わないでprint_r()
   pr()はインデックスに載ってないのでたぶん出てこない
   h()もそうだけど、省略表記が嫌いなんだろうか

・モデルから持ってきたデータを回すときにforeachではなくfor
   好みの問題だけど、foreachの方が使われることが多いし、特に理由がなければ最初はforeach教えた方が・・・

・$this->flashは使わずに$this->redirect
   save完了したときなどはとにかくredirectしてる。メッセージ出してあげた方が親切なんじゃ・・・
   $this->flashもインデックスには載っていないのでry(Session->flashは載ってた)
   ちなみにredirectについてTipsで「redirectはうまく動かない場合もあるので、そういうときはphp.iniを修正」という
   解説が載っている。問題起きやすいのならとりあえずflashでいい気がするけど・・・

・beforeFindの実践例で「limitやorderが設定されていなかったらデフォの設定で上書き」というもの
   limitはともかくorderは普通にmodelで設定できるからbeforeFind使わないでも・・・

・VALID_NOT_EMPTYは1.2まで使われていたバリデーション用の定数という説明
   1.2の時点で非推奨になっていたような・・・(ちょっと自信なし)

・ユーザーデータ用のテーブルがPersonalsテーブル
   形容詞じゃなくて名詞でUserテーブルとか、Peopleテーブル(Personモデル)とか・・・

・<a href="/cake/sample/boards/edit/<?php echo $id; ?>">※この投稿を編集する</a>
   $html->linkが嫌いなのか、後半を見ても基本的に直でHTML書いてます
   ルーティング使うときとか便利だし、とりあえずhtml->link使うように教えた方がいい気がします

・記事を見るのはshowアクション、投稿者のデータを見るのはshow2アクション
   さすがにshow2はないんじゃないでしょうか
   なんか昔のcgi説明サイトを思い出しました
274241:2010/08/26(木) 00:45:18 ID:???
・変なバリデーション
if(!empty($this->data)) {
 $this->Board->save($this->data);
}
if($this->Board->validates()) {
 $this->redirect('.');
}
検証してないんですが、たぶんこれだと2回バリデーションが行われるんじゃないでしょうか
if(!empty($this->data)) {
 if($this->Board->save($this->data)) $this->redirect('.');
}
とかでいい気がします

誤植
・P78 bloards_controller
・P168 コードの方はnotEmptyになってるけど、解説文がVALID_NOT_EMPTY


もうポストイットがもったいない気がしてきた。
275nobodyさん:2010/08/26(木) 00:56:46 ID:???
>>273
買う価値がないのは十分分かったからもういいよ
あとはブログにでも書いてなよ
276nobodyさん:2010/08/26(木) 01:41:03 ID:???
俺も$html->linkは使わない
デザイナから上がってきたAタグを$html->linkに置き換えるのは面倒。
どんな属性が入ってるかわからんからその都度optionsに入れる必要がある。

だから href="<?php echo $html->url(array(......))"って書き換えるようにしてる。
277Perl忍者 ◆M5ZWRnXOj6 :2010/08/26(木) 07:17:20 ID:/qgtmxHg
PHPでも $ 使うんですかwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww


真似しかできないwwwwwww

Perlの真似
278nobodyさん:2010/08/26(木) 11:14:50 ID:???
等と供述しており
279nobodyさん:2010/08/26(木) 12:38:59 ID:???
>>278
相手にすんな
280nobodyさん:2010/08/26(木) 13:47:51 ID:???
>>241
詳細なレポとても価値があるぞ。
アマゾンのカスタマーレビューに書いてくれるとなおよい。
281241:2010/08/26(木) 14:05:08 ID:???
書くの疲れたから、これ以上は書かないよ。
>>273の言うように、買う価値がないと伝わればそれで十分だし。
アマゾンとかブログで書くと個人特定されちゃうしね。

もう秀和システムの本は買わない。
282nobodyさん:2010/08/26(木) 22:30:09 ID:???
参考になった。ありがとう。
・・・ver1.1から使ってて基本はわかってるし
あとはネットの情報で補完していくのが利口みたいだね。
283nobodyさん:2010/08/26(木) 23:15:45 ID:bJUkFpkI
質問です。

CakePHPのURIって、以下のように成っていかと思いますが、

http://hoge.com/~piyo/home/コントローラー名/アクション名

http://hoge.com/~piyo/home ←この部分を定数にしたいです。


http://hoge.comは、FULL_BASE_URLという定数が用意されているので、取得できるのですが


取得する方法を知っている方は、教えてください。

284nobodyさん:2010/08/26(木) 23:43:37 ID:???
あほだろお前
285nobodyさん:2010/08/27(金) 01:57:26 ID:???
CakePHPのctpってHTMLのデザイナーにとってすごい見づらいね
htmlの中にPHPが大量にそのまま混ざってるって、ちょっとありえない

お前らその辺はあきらめて使ってるわけ?
286nobodyさん:2010/08/27(金) 02:13:56 ID:???
<?php echo $hoge;?>
とか
<?php foreach ($arr as $foo):?>
<?php endforeach;?>
とか
<?php echo $this->element('bar');?>
くらいしか殆ど描かないんだけどいやなの?

いやならsmartyつかえばいいけど
287nobodyさん:2010/08/27(金) 02:24:01 ID:???
お前らって。このスレ、デザイナーも見てるの?
288nobodyさん:2010/08/27(金) 02:25:46 ID:???
>>285
PHP?なにそれ?って奴に頼んでるのかお前は
テンプレートエンジンのループなら意味解るけどfor文だとさっぱりとか言う奴の方がむしろおかしい
どうせツールで読み込めば<??>タグなんて無視されるんだし
289nobodyさん:2010/08/27(金) 10:27:21 ID:eU+Zo85k
Paginatorのソートについて質問です。
Viewでソートをする場合
<?php echo $paginator->sort('ID', 'User.id');?> と書きます。

1:アソシエーションしているモデルを選択している場合、モデル名が必要ですが、
 Userというモデル名を書きたくないです。書かずにソートさせる方法はありますか?
2:ソートをクリックした後、URLがsort:User.idのようになりますが、
 カラム名がURLに表示する事に違和感を受けます。
 数字などに置きかえ出来ないでしょうか?
290nobodyさん:2010/08/27(金) 10:38:44 ID:???
フレームワークの規約に従いたくないならフレームワーク使わなきゃいいんじゃね?
291nobodyさん:2010/08/27(金) 10:40:57 ID:???
って言う奴多いけど、一部変えるのが困難なだけで
オレオレに戻るのはいかがなもんかとおもうけどな
292nobodyさん:2010/08/27(金) 10:44:42 ID:???
自分が大好きなものにケチを付けられた時の子どもの反応と同じだね
293nobodyさん:2010/08/27(金) 10:59:30 ID:???
>>285
俺はHTMLヘルパーを極力使わないようにして、ソースをシンプルにしてるよ。
デザイナーに見せたら「わかりやすいです」と言っていた。
あとは、>>286みたいに必要なコードだけ教えれば大丈夫だろ。

>>289
nanapiも普通にURLがsort:Search.pvとかなってるし、
気にしなくても大丈夫じゃねぇ?問題あったらこのやり方採用してないだろうし。
294nobodyさん:2010/08/27(金) 13:25:24 ID:???
mysqlからデータを拾って、それをさらに計算して一覧にしたい場合あるよね。
そういう場合ってcakephpのpaginate使えないんだけど、みんなどうしてる?
295nobodyさん:2010/08/27(金) 13:30:08 ID:???
>>294
paginateのパラメータにjoinの指定が出来るから、それ使ってる
296nobodyさん:2010/08/27(金) 13:30:44 ID:???
もしもSQLで対処できないような計算の場合

1.paginateの結果(キーになる部分のみ)を変数に格納
2.キーをもとにプログラムで計算して、結果を変数に追加
3.編集した変数をsetでviewに渡す
297nobodyさん:2010/08/27(金) 13:40:06 ID:???
afterFindでは出来ないの?
計算ってどんな?
298nobodyさん:2010/08/27(金) 14:09:51 ID:???
>>294
virtualFieldでできるはずだが、違ったかな?
299nobodyさん:2010/08/27(金) 14:29:06 ID:???
>>283
そこをルートとして使ってるのなら、普通にそのまま
define("ROOT_URL", "http://hoge.com/~piyo/home")
とかでいいじゃん

>>293
今すぐセキュリティの問題が出るというわけでもないだろうけど、
裏側の情報はあまり見せたくないという気持ちは俺にもわかる
特にsort:User.idみたいなのだと、そのまま中身が見られている
感じがして気持ち悪い
300nobodyさん:2010/08/27(金) 14:33:41 ID:???
>>299
その書き方教えると「余計な定数増やすな!」って煽られるぞw
301nobodyさん:2010/08/27(金) 14:42:02 ID:???
cakeはルート設置を推奨してるから、それ以外で運用するときに問題が出るのはしょうがない
302nobodyさん:2010/08/27(金) 15:05:12 ID:???
295 〜 298さん
ありがとう。
user テーブル 1
id , name
shiken テーブル 多
id user_id tokuten

の関係で、「平均点で50点以上のユーザーのみ取得したい」
とか言う場合なんだけど。

join だと複雑な書き方がいまいちわからず、cakephp1.2なので virtualField使えず。
afterFind でできるならそれが一番楽だと思うんだけど。

一度上記全てをググって勉強してみます。
ありがとう。
303299:2010/08/27(金) 15:09:18 ID:???
>>289
1.URLはorder:idとかにして、beforeFilterあたりでparams['named']['order']を見て、
モデル名がなければモデル名を付加するとか
2.URLはorder:0とかにしておいて、bedoreFilsterあたりで、0=>id, 1=>createdみたいな
対応表を使って差し替えるとか

cakeのURLはシステム的にわかりやすいけど、ユーザーに見せるURLとは
ちょっと違う気がするんだよなあ
URLがシステム的にわかりやすいと、URLを書き換えて意図しないURLで
アクセスされちゃったりということもあるだろうし
そういうところはきちんと事前に想定して防げばいいんだろうけど、それでも
なるべくユーザーからはシステムは見えなくしたい
304299:2010/08/27(金) 15:34:45 ID:???
すまん適当なことを書いてしまった

$paginator->sort('ID', 'User.id');で作られるURLは、order:User.idじゃなくてsort:User.idだな
今試したらアソシエーションしたモデルでorder:idでアクセスするとエラーになるけど
sort:idでアクセスしたら、勝手にモデル名が補完された
なので、モデル名出したくないのなら$paginator->sort('ID', 'id');でいいんじゃない?
アソシエーションした他のテーブルのカラムでorderしたい場合は知らん。
305nobodyさん:2010/08/27(金) 16:17:00 ID:???
>アソシエーションした他のテーブルのカラムでorderしたい場合は知らん。

その場合はやっぱり$paginator->sort('ID', 'User.id');こうなるんじゃないか?
306299:2010/08/27(金) 16:24:42 ID:???
それならやっぱりURLはsort:tourokujunとかにして、beforeFilterでparams['named']['sort']を見て
tourokujunだったらUser.idに書き換えるとか
307305:2010/08/27(金) 16:56:58 ID:???
function beforeFilter()
if (isset($this->params['named']['sort'])) {
if ($this->params['named']['sort'] === 'user_id') {
$this->params['named']['sort'] = 'User.id';
}
}
}

適当にこう書いてみたけど、こんな感じのエラーが出るね。
SQL Error: 1054: Unknown column 'User.user_id' in 'order clause'

これ以上テストするのもめんどいので後はしらねw
308299:2010/08/27(金) 17:45:25 ID:???
paginatorが見てるところが違ったな、$this->paramsじゃなくて$this->passedArgsだった

if (isset($this->passedArgs['sort'])) {
if ($this->passedArgs['sort'] === 'user_id') {
$this->passedArgs['sort'] = 'User.id';
}
}

これで動いた

っていうか>>289は他のテーブルのカラムでソートしたいのか?
309nobodyさん:2010/08/27(金) 18:06:07 ID:???
>>308
この方法でもソートできなくねぇ?
310299:2010/08/27(金) 20:28:29 ID:???
1.3.3だけどちゃんと動くよ
他のテーブルのカラム指定してもOK
ただ、存在しないカラムを指定するとエラー表示せずにそのままorderなしでSQL発行するみたい
311nobodyさん:2010/08/27(金) 20:41:40 ID:???
いや、そうじゃなくてpaginateで使うんだろ?
ソート扱いになっていないみたいなんだが。
312nobodyさん:2010/08/27(金) 20:48:56 ID:???
アホがアホにモノ教えるって悲惨な状況だな
313311:2010/08/27(金) 20:49:55 ID:???
ちゃんと書かないと誤解を招くな。
308の内容を同じ1.3.3で試してみたけど、確かに1回目のOrderは適応される。
でも、ソートのリンクをクリックしたら並び替えされないし、
対象リンクのマーク(↓↑)が適応されていないよ って事を言いたかった。

308以上の事をしていたら知らんw
314299:2010/08/27(金) 21:01:05 ID:???
>>313
そりゃあ、pagination helperで出力する内容は変わらないだろ
そっちはそっちで整合するように修正すりゃいい話で

んで>>289,>>305,>>309,>>311,>>313は同一人物なのか?
315nobodyさん:2010/08/27(金) 21:07:32 ID:???
>>314
書き下手で済まんな・・。
だから要件を満たしてないのでは?って言いたかった。

ちなみに309,311だけど。
316nobodyさん:2010/08/28(土) 14:08:58 ID:???
cakeって難しいんだね
317Miyagawa ◆M5ZWRnXOj6 :2010/08/28(土) 16:50:11 ID:kvWFLXrw
Hello. CPAN Module use Thank you :D
318Miyagawa ◆M5ZWRnXOj6 :2010/08/28(土) 16:56:12 ID:kvWFLXrw
hi! They are shit!! fuck off!!

死ね!
319nobodyさん:2010/08/28(土) 16:58:16 ID:???
fack you!
320Miyagawa ◆M5ZWRnXOj6 :2010/08/28(土) 17:10:47 ID:kvWFLXrw
あんまり調子乗ってるとCPANから俺のモジュール全部消すぞこら
321宮川マンセーオタ ◆M5ZWRnXOj6 :2010/08/28(土) 17:12:21 ID:kvWFLXrw
           、,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
          ノ´::::::::::::::::::::::::::::::::::::::::::::::::::::::::::ヽ
        (:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::ヽ
       (:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::ヽ
      (:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::)
     (:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::)
      ヽノヽノヽノノヽノヽノノヽノヽノノヽノヽ、::::::::::::::::)
       | ,,;;;;;;;;;;;;;;,,,,,, )) ( ,,,,;;;;;;;;;;;;;,,,,   `ヽ、;;;;;;;;::)
       || ̄ ̄ ̄ ̄ ̄|____| ̄ ̄ ̄ ̄ ̄|  /~~ヽノ:::)
       ||   -=・=- 0⌒0  -=・=-  | ̄´ ´~) );;::)
       |\___/ノ  ミ\___/ヽ  つ, ノ;;;:ノ
       | ´     ./   、´    `   (_ノ;;;ノ
       <      (。、 。)         >;;;;::ノ
        \    ノ`∪´ ヽ、      /|;;;;ノ
         | ....(/~~~~~~~\)....    彡 |ノ  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
         |  ( ̄ ̄~~~ ̄ ̄)     | イ  <   宮川さんを馬鹿にするのはやめませんか?
         |   ~~ ̄`´ ̄~~´    /  |   \______________
          \  .....´⌒`......   /    |
          _|\_;;;;;;;;;;;__/      |__
     __/;;;ノ               /;;;;;;;;;;;;\___
   /;;;;;;;;;;;;/;;;;\             ./;;;;;;;;;;;;;;;;;;;;;;;;;\;;;;;;;;;;;\
322nipotan ◆M5ZWRnXOj6 :2010/08/28(土) 17:14:12 ID:kvWFLXrw
     _____
    /  ____彡
   /::::::/━   ━ \
  /:::::/  _   _ |
  |::::/--((・))―((・))(
  (6    ̄  つ  ̄ ヽ
  |    ___    |   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   |  ∴)\_/ (∴ | < こら、宮川さんとか馬鹿にするのはやめろ
   ヽ      ―   丿  \________
    \_____/
323nobodyさん:2010/08/28(土) 17:19:32 ID:???
Perl忍者いい加減にくたばれよ
324Perl忍者 ◆M5ZWRnXOj6 :2010/08/28(土) 17:27:39 ID:kvWFLXrw
    X
  ∠ ̄\∩
  |/゚U゚Lノ   くたばれとか暴言やめろ
 〜( ニ⊃  
  ( 丶/
  ノ>ノ
  UU
325nobodyさん:2010/08/30(月) 02:24:39 ID:???
Hyperestraierによる全文検索を、CakePHP上から実現したいと思っています。
具体的に言うと、あらかじめ作成しておいたHyperestraierのインデックスを使って、
サイト上の検索窓から検索させたいです。

APIとしては、EstraierPureをapp/vendors配下に設置しました。
しかし、以下をどうすればよいか分からず、止まっている状態です。

(1) Hyperestraierのノードをどこのディレクトリに格納すればよいか
  とりあえず/home/user/public_html/estraierディレクトリ配下にcasketを
  格納したものの、ノードのURLとしては正常に機能していない状態のようです。
  http://localhost/~user/estraier/casket
  とすると、"Missing Controller"というCakePHPのエラーが出ます。

とりあえず、ここに質問する前に参考にしたサイトを挙げます。
■cakephpでhyperestrailerによる検索(CGI)
 http://d.hatena.ne.jp/oggata/20100406/1270540127
■EstraierPure
 http://page2.xrea.jp/#EstraierPure
■EstraierPureのapp/vendorsへの配置方法について
 http://www.and-works.co.jp/wp/archives/66
 http://book.cakephp.org/ja/compare/539/Vendor-examples

環境は以下の通りです。
 CakePHP: 1.3.0-beta
 Hyper Estraier 1.4.9 on Linux
 EstraierPure: 0.6.0
326nobodyさん:2010/08/30(月) 05:34:09 ID:???
Hyperestraier以前の問題やん
327nobodyさん:2010/08/30(月) 21:41:40 ID:???
なぜbeta使うの?安定版があるのに。
328325:2010/08/31(火) 00:39:58 ID:???
329325:2010/08/31(火) 00:42:33 ID:???
途中で投稿してしまいました。失礼しました。

>>327
betaが出た頃にインストールして、支障がなかったのでそのまま使っています。

あれから、HyperestraierのDBとノードを混同しているらしい事に気づきました。
とりあえず別途、Hyperestraierのノードを起動してから試してみようと思います。
330nobodyさん:2010/08/31(火) 19:00:53 ID:???
CakePHP面白そうだなぁ、なんかスゴそうだなぁ
331Perl忍者 ◆M5ZWRnXOj6 :2010/08/31(火) 21:18:35 ID:NL5nyoqM
         {:::::i:::::::::::::::::::::::i::/!:::::ハj       ヽ_ン´、レ'´ {:::::::i:::::\__
         レ|::|::::::::::::'、::::::N j/         ノ,、_`__>  }:::::::i`i::ト-'´-
          i::|、::::::ハ{`、:::{             ー夂_,ノイ:::::ノ ノ、j: : : : :
          j_ハ`、 {  `ヾ   `、\ ノ /  ー'´___,ィ ム'´i j-―ー--
            }::!'i、`、ー=r==、  ` 、  /   ,r='ラ ̄// i`ソ/: : : : : : : :
            '、`ハ  \_`ー'´\ 、_ i  i  /__`´__ノノ  ム'/、__: : : : : : :
            r')、゛'、   ̄二ニ´ 、`= /´ニ二 ̄   レ':::r'´'、: : : : : :
         r-、_!厶`Ti、        `          /:::::トv':.:.:.:.iー- ..__
         /  j  .V レ、       ,          ハ∧j:.:.:.:.:.:.:.\:.:.:.:.:
       _ノ  i /    |ハ!`、  _   `ー'   _,.r  /   |:.:.:.:.:.:.:.:.:.:.:.:.:.:.:
    r-‐'´   |/    |'   `ヽ、 ̄ ̄二二 ̄  ,.イ     |:.:.:.:.:.:.:.:.:.:.:.:.:.:.
  r-‐/     i     |     i`ー..._    ,.. -'´/      |:.:.:.:.:.:.:.:.:.:.:.:.:.:.

なにこのスレ・・・しねよ
332nobodyさん:2010/08/31(火) 23:13:39 ID:???
生きる!!
333nobodyさん:2010/09/01(水) 10:40:36 ID:???
Perl忍者嫌い
334nobodyさん:2010/09/01(水) 10:47:09 ID:???
報告したらいい
335nobodyさん:2010/09/01(水) 10:56:06 ID:???
NGしてほっといたらいい
336nobodyさん:2010/09/01(水) 11:14:10 ID:???
じゃあ、次で
337nobodyさん:2010/09/01(水) 11:19:23 ID:???
http://2010.phpmatsuri.net/
PHP Matsuri
2010年10月2日・3日開催のPHP開発合宿イベント

参加登録始まってます
338nobodyさん:2010/09/01(水) 11:26:16 ID:???
合宿・・・
339nobodyさん:2010/09/01(水) 12:14:15 ID:???
ど、土曜日が休みなわけねーだろ!!・・・
340nobodyさん:2010/09/01(水) 12:30:22 ID:???
cookbookって順番に見ていくと表示が切り替わらないページ多くね?
341nobodyさん:2010/09/01(水) 14:13:54 ID:???
多いね。特に1.3が多い気がする
342nobodyさん:2010/09/01(水) 14:28:13 ID:???
あの間違ったリンクはヘルパー使って出力してるんだろうか?
343nobodyさん:2010/09/01(水) 17:53:25 ID:???
単に、ビューの作成ミスじゃないか?
344nobodyさん:2010/09/02(木) 16:10:42 ID:???
phpはifとかforとかの文法やったらもうフレームワーク行ったほうがいいな
345nobodyさん:2010/09/02(木) 16:19:21 ID:???
SQLも覚えた方が良いと思う。
INSERTとかUPDATEとかそう言う構文じゃなくて、概念として。
346nobodyさん:2010/09/02(木) 20:09:48 ID:???
phpadmin使ったらぴゅーって感じで俺でもできるよん
347nobodyさん:2010/09/02(木) 21:17:01 ID:???
DB側でロジック組んだらすっきり安全に書けるところを
コードでガシガシ書いて品質落とすはめになるとか、よく見る。
ただでさえPHPは危険なコードを書きやすいし。
348nobodyさん:2010/09/02(木) 23:08:37 ID:???
ああ、それはあるね。
SQLインジェクションが大手サイトで未だに多いのも、それだろうね。
349nobodyさん:2010/09/03(金) 01:14:46 ID:???
PHPは危険なコードを書きやすいって何を根拠にしてるんだろうな
まともな奴でそんな事言ってるの小飼弾くらいだろ
350nobodyさん:2010/09/03(金) 02:05:24 ID:???
whileは危険なコードになりやすいね。
危険というか、無限ループだけど。
351nobodyさん:2010/09/03(金) 02:20:33 ID:???
>>349
それ2行目は笑うところ?
352nobodyさん:2010/09/03(金) 08:16:34 ID:???
危険度なんてどの言語でも同じだけどな
昔よくあったクソみたいなPerlCGIはなんだったのみたいな
353nobodyさん:2010/09/03(金) 08:49:05 ID:???
タイプセーフな言語だと事前に多少バグがわかりやすいみたいな部分はあるだろうけど、
セキュリティホールが生まれやすいって部分に関しては特に言語に優劣があるわけじゃないと思う。
強いて言えばメモリ関連も自分でやらなきゃならんC/C++が多少不利なくらいでしょ。
354nobodyさん:2010/09/03(金) 09:50:17 ID:???
とりあえず、Cakeの話じゃないよね
355nobodyさん:2010/09/03(金) 10:20:38 ID:???
>>354
くだらない質問よりはマシな話だと思うわ
356nobodyさん:2010/09/03(金) 12:18:04 ID:???
俺は逆だと思う。くだらない質問があれば同じよう質問も減るだろ。
357nobodyさん:2010/09/03(金) 12:21:05 ID:???
>>347
とりあえず謝って
358nobodyさん:2010/09/03(金) 17:44:25 ID:???
ごめん
359nobodyさん:2010/09/03(金) 17:54:12 ID:???
すまなかった
360nobodyさん:2010/09/03(金) 21:43:21 ID:???
どっちが347だ?w
361nobodyさん:2010/09/04(土) 03:07:07 ID:???
誰かさくっと教えてください
validationルールで、numericまたはdecimalってのはどう書けばいいんでしょう
複数ルールのANDは並べればいいらしいけどORがわからない
362nobodyさん:2010/09/04(土) 10:47:54 ID:???
どくじばりでーしょんかくしかないんじゃない
363nobodyさん:2010/09/05(日) 00:03:21 ID:???
Amazon.co.jp: 高速開発で差をつけろ!CakePHPの基礎とECサイト制作入門: 小倉 実: 本
http://www.amazon.co.jp/dp/4434147463/
これ立ち読みしてきた
159ページしかないのに3780円もしてビックリした
内容は簡単なECサイトのチュートリアルという感じで、詳しい部分には突っ込んで書かれていない
サンプルコードも「こんなので大丈夫なのか?」と思うような記述がちらほら

なんか書籍は最近不作ね
1.3のオフィシャル本が出ればいいのに
364nobodyさん:2010/09/05(日) 00:50:15 ID:???
>>363
>第1章 CakePHPの環境設定と準備(秀丸とFirefoxのダウンロード

そっからかよw
365nobodyさん:2010/09/05(日) 01:42:24 ID:???
秀丸てw
せめてphpshotのPHPエディタだろw
366nobodyさん:2010/09/05(日) 03:15:36 ID:???
秀丸w
367nobodyさん:2010/09/05(日) 15:21:03 ID:???
秀丸の何がおかしい!
368nobodyさん:2010/09/05(日) 16:09:00 ID:???
秀丸に金払うんだよなもちろん
369nobodyさん:2010/09/05(日) 18:13:52 ID:???
秀丸はないわ
370nobodyさん:2010/09/05(日) 18:23:30 ID:???
彼氏が秀丸でコード書いてたら別れるレベル
371nobodyさん:2010/09/05(日) 18:49:40 ID:???
秀丸で書いてもいいんだけど
ちゃんと金払ってマクロ使いこなしてじゃないと
秀丸で書く意味ないだろ
372nobodyさん:2010/09/05(日) 18:56:17 ID:???
terapadじゃ駄目なの?
373nobodyさん:2010/09/05(日) 19:40:10 ID:???
notepad++がいい
374nobodyさん:2010/09/06(月) 00:33:55 ID:???
禿丸
375nobodyさん:2010/09/06(月) 01:59:52 ID:thbJcGM5
findのthreadedでツリー型の配列を取得できますが、
それを1つの配列にまとめたいと思っています。

以下のソースで1つの配列に代入出来ますが、ツリー通りの順番になりません。
どの変を直すと、良いのでしょうか?1.3.3を使っています。

function index(){
$data = $this->Category->find('threaded');
$list = array();
foreach ($data as $ary) {
$list[] = $ary['Category'];
if (isset($ary['children'][0])) {
$this->_children($list, $ary['children']);
}
}
}

function _children(&$list, $data)
{
foreach ($data as $ary) {
if (isset($ary['children'])) {
$this->_children($list, $ary['children']);
}
array_push($list, $ary['Category']);
}
}
376nobodyさん:2010/09/06(月) 15:00:11 ID:???
スレ違いだったらすみません。
yiiを見ているのですが、下のソースはどういう意味でしょうか?

Yii::createWebApplication($config)->run();


Hoge::foo($config)->huga();
この書き方はスマートでよさげなのですが、どういった構造になりますか?
↓ではないようなのでさっぱりです。
class Yii {
function :createWebApplication($config) {
...
}
function run() {
...
}
}
377nobodyさん:2010/09/06(月) 15:13:49 ID:???
なんか基地外がいる
378376:2010/09/06(月) 15:42:58 ID:???
すみません・・・
FW総合と間違えて誤爆しました。
無視してくださいm(_ _)m
379nobodyさん:2010/09/06(月) 15:45:32 ID:???
>>363
自分も少し読んでみた…
…読み辛過ぎる…。
これ入門書なんだけど、本のレイアウト、文章構成等が壊滅的。
プログラム以前の問題。
他にCake本がなければ我慢して読むレベルだと思う。

ちなみに「ECサイトのチュートリアル」ではなく、
発行元のオモドックが作った?ECサイトのオープンソースを
カスタマイズしていく、という内容。
(ダウンロード元のURLは本に載っている)
…ECサイト作成入門、という言葉からフルスクラッチを想像してしまったんだが…。

入門書なら、>>241 にボロカスに書かれている
CakePHP 1.3によるWebアプリケーション開発―オープンソース徹底活用
の方が内容的にも値段的にも全然マシ。(といっても、1.2版しか読んでないけど)
380nobodyさん:2010/09/06(月) 19:32:08 ID:3l/prtic
cakeの初学本の次に読む良い本はないでしょうか。

というかphp、cakeに関係する良書教えてください。
381nobodyさん:2010/09/06(月) 19:52:25 ID:???
>>365
PHPエディタはヒアドキュメントの中に不等号入れると、文法が合ってても色付けがぶっ壊れるね
PHP専用エディタなのに適当過ぎるわ、作者は直すこともできないらしいし
382nobodyさん:2010/09/06(月) 20:21:03 ID:???
>>380
残念ながら良書はない。どれも作者の色が強い内容。

ポケットリファレンス的な本があればいいのにな。
Cakeも一応あるけど、バージョンがもう古い。
383nobodyさん:2010/09/06(月) 20:29:59 ID:???
>>380
今度出るリファレンス本
今月中らしい
384nobodyさん:2010/09/06(月) 20:52:42 ID:???
>>382
ありがとうございます。
古いのは知ってましたが、ポケットリファレンスは買いました。
細かい仮引数の意味は書いてませんでしたが役に立ちました。

>>383
ありがとうございます。
Amazonチェックしておきます。

皆さんがcakeを極められたのはやっぱり実務と経験なんですかね。
オライリーが本気出してくれればすごい助かるのに。
385nobodyさん:2010/09/06(月) 20:52:56 ID:???
最近はEclipse+PDTを薦めてる本が多いと思う
実際便利だし
386nobodyさん:2010/09/06(月) 21:16:32 ID:???
一番読むべきなのはマニュアルとAPIでいいよ。

マニュアルのブログもどきのチュートリアルから
例えば一般のブログサービスにあるような機能を足してみたりして膨らませて行けばいい。
車輪なんて何回でも発明してやれ。
387nobodyさん:2010/09/06(月) 21:30:48 ID:???
オフィシャル、ポケットリファレンス、実践アプリケーション開発を1.3対応させてくれりゃいいのに
売れてないのかな
388nobodyさん:2010/09/06(月) 21:41:20 ID:???
俺はCakeの本よりも、Cakeを使って作ったサイトがたくさん見たいんだが
どうやって探せばいいのかよくわからない
389nobodyさん:2010/09/06(月) 23:46:08 ID:???
Cakeの公式サイトに事例が載ってるじゃん
390nobodyさん:2010/09/07(火) 00:02:35 ID:???
ソースが見たければgitでググれ
391nobodyさん:2010/09/07(火) 00:04:24 ID:???
俺が低予算短納期でこのまま仕事するなら死んだ方がマシの精神状態で
殴り書きしたサイトなら5つくらいあるから頑張って探して
セキュリティホールってこうやってできるんだって勉強になるよ
392nobodyさん:2010/09/07(火) 00:49:04 ID:???
なんでセキュリティホールを放置したままにしてるの?
393nobodyさん:2010/09/07(火) 00:52:18 ID:???
低予算短納期なら仕方ないな
394nobodyさん:2010/09/07(火) 01:06:51 ID:???
cakeの案件だと平気で1週間10万とかあるからな
395nobodyさん:2010/09/07(火) 03:36:17 ID:???
その予算と納期でどの程度のシステム作るの?
テーブル数10以下のCMSなら、簡単に出来そうだけど。
396nobodyさん:2010/09/07(火) 09:36:19 ID:???
>>386
あとはソースもね

マニュアルが貧弱すぎてソース読まないと分からないって状況はなんとかして欲しい
397nobodyさん:2010/09/07(火) 09:42:42 ID:???
>>395
一番酷かったのは20万で100画面規模のエロサイト
テーブル数は細かいマスタまで入れると50くらいだったわ
納期は2週間だったけどもちろん遅らしたあげくキレた
398nobodyさん:2010/09/07(火) 09:43:19 ID:???
誰かが書かなきゃ駄目なんだぜ?マニュアル
399nobodyさん:2010/09/07(火) 10:01:13 ID:???
>>398
お任せします
400nobodyさん:2010/09/07(火) 10:25:04 ID:???
>>392
セキュリティ確保は別料金になります
401nobodyさん:2010/09/07(火) 10:42:56 ID:???
なんの自慢にもならんよ
そんな低料金でやるバカが居るから値崩れするんだよ
死んで詫びろ
402nobodyさん:2010/09/07(火) 10:47:18 ID:???
>>241 でも紹介されている「CakePHP 1.3によるWebアプリケーション開発」買ってみたら
UTF-8はBOM付きで保存しろって書いてある・・・。
403nobodyさん:2010/09/07(火) 10:59:22 ID:???
>>401
低料金でしか発注しない人がいるんでしょ
パスしても、だれかが受けちゃうよ?需要と供給はマッチしとるわな、残念ながら
404nobodyさん:2010/09/07(火) 11:03:01 ID:???
普段は通常価格で受けてても、今回は安いけどお願いしますよってのもあるし
新しい取引先と初回の契約だとリスクヘッジで単価下げられる事もあるし
それでも他に仕事ないなら受けた方がプラスになるし
405nobodyさん:2010/09/07(火) 12:24:54 ID:???
>>402
買うなって・・・BOM付きって・・・
406nobodyさん:2010/09/07(火) 12:47:47 ID:???
いいから死んで詫びろよ
クズが
407nobodyさん:2010/09/07(火) 13:25:36 ID:???
買ったけど読んでない俺勝ち組
408nobodyさん:2010/09/07(火) 13:41:29 ID:???
このスレでCake本出せば売れるんじゃね?
409nobodyさん:2010/09/07(火) 13:46:30 ID:???
売上の8割は俺によこせよ
410nobodyさん:2010/09/07(火) 14:30:21 ID:???
Cookbookっていつも遅いよな、Cakeで作ってるから遅いんじゃないの?
411nobodyさん:2010/09/07(火) 14:46:25 ID:???
遅いのはまだしも、リンク切れや間違いが多い
412nobodyさん:2010/09/07(火) 14:51:00 ID:???
cakePHPのマニュアルを読むのだけどサイト遅すぎでイライラする
ローカルにダウンロードしたいけどそういうのもナシ
413nobodyさん:2010/09/07(火) 14:56:03 ID:???
414nobodyさん:2010/09/07(火) 16:03:15 ID:???
>>411
せっかく翻訳してくれてる人達には悪いけど、日本版にはそういう傾向があるね。
英語版見た方がいいよ。
415nobodyさん:2010/09/07(火) 16:07:42 ID:???
英語版:Cookbook
日本語版:Cakebook

何の誤訳だよ
416nobodyさん:2010/09/07(火) 16:13:54 ID:???
英語版みてもコードは解るけど、説明もみたいじゃない。
けど、英語読めないから辛い・・・
417nobodyさん:2010/09/07(火) 16:19:18 ID:???
プログラマで英語が読めないって、かなり致命的
418nobodyさん:2010/09/07(火) 16:20:08 ID:???
>>416
お前は俺の後輩か!
"読めないから"じゃなく、読めるとこだけでも読む
419nobodyさん:2010/09/07(火) 16:35:15 ID:???
>>416
英語の教科書やテストみたいになんの興味もないヒネったつまらん英文ってわけでもないし
別にたいして難しく書いてあるわけじゃあないよ。
いずれにしてもAPIまで読んで行く時にそっちは翻訳されてないし。

いい機会なんだからめんどくさがらずにがんばれ。
420nobodyさん:2010/09/07(火) 16:36:45 ID:???
俺いつも英文が出ると、単語を掻い摘んで読んでいくか
エキサイト翻訳にかけるか、Googleツールバーで一括翻訳か
どれかしてる。それである程度意味はわかるけど、英語が苦手なのは確かだ。
421nobodyさん:2010/09/07(火) 16:55:31 ID:???
まあもちろんパッと見て「わからない〜〜」ってなるのは仕方ないけどさ。ネイティブじゃないんだし。
でもじっくり読んでたら頭の中が英語脳みたいに切り替わる瞬間みたいなのがあって面白い。
422nobodyさん:2010/09/07(火) 17:56:23 ID:7yk3+8B4
フォームヘルパーで日付の「年」のみを選択出来るようにしたいのですが、
どうすればいいのでしょうか?
$form->input('year', array('type' => 'select', 'options' => $options));
として、自前で$optionsの内容を作成する方法しかないのでしょうか?
423nobodyさん:2010/09/07(火) 19:52:56 ID:???
424422:2010/09/07(火) 20:03:39 ID:???
>>423
出来ました。ありがとうございます。
425nobodyさん:2010/09/07(火) 20:10:54 ID:???
cakephpはもう1.3が主流ですか?
426nobodyさん:2010/09/07(火) 20:53:13 ID:???
既存サイトの手直しなんかでマイグレーションに苦労する。ってんでもなければ1.3でしょ。
427nobodyさん:2010/09/07(火) 21:15:31 ID:???
マイグレーションってなんですか?
428nobodyさん:2010/09/07(火) 22:51:00 ID:???
PHP質問スレで流れてしまったので、もしよければ教えてくださいませ。

cakePHPなどのMVCモデルで、何行ぐらいのコードになったら別個のファンクションに
するべきか悩んでおります。

コントローラーにはビジネスロジックを書かずに、モデルにどんどん書いています。
すると、今度はモデル内のコードがごちゃごちゃしてきました。

繰り返しをするコードは別個のファンクションにしていますが、単純に、モデル内における
ファンクション内のコード数が長くなりすぎた場合、どの程度で別のファンクションに分けるべきでしょうか?
429nobodyさん:2010/09/07(火) 22:58:24 ID:???
>>428
なんで行数?わけわからn

一連のロジックのうち、他で再利用する可能性が高いものはメソッド化するかな
行数なんか考えたこともないわ
430428:2010/09/07(火) 23:10:34 ID:???
>>429

ありがとうございます。

再利用しそうにないコードがずらずらと並んで、結構
長いファンクションになってしまったもので。。
431nobodyさん:2010/09/07(火) 23:31:46 ID:???
自分の中で「三回(三箇所)以上で使う場合はまとめる」
とかしたらどうだ?
モデルにまとめるなら、app_controllerとか作ってさ。
俺はもっと細かく、member_controllerとかコンテンツ毎に分けてるけど。
432nobodyさん:2010/09/07(火) 23:43:39 ID:???
お前は何の話をしてるんだ?
あと3回ってなんだ3回って。なんで3回だ2回ならコピペするのか?
433nobodyさん:2010/09/07(火) 23:50:16 ID:???
自分で決めりゃいいじゃん。人に聞かないと判断つかないんだから。
それを言いたいのに、「どういうこと?」っていちいち聞き返すなよ。めんどくさい。
434nobodyさん:2010/09/07(火) 23:56:03 ID:???
処理が長くなりすぎて、ひとつのアクション中での流れが見えなくなったってことなんじゃない?
折りたたみできるエディタ使うか、使い回ししないやつでもメソッド切り分けるかしたら?
435nobodyさん:2010/09/07(火) 23:56:13 ID:???
このおにーちゃん何いってんの?
急にキレてるけど頭おかしいの?
436nobodyさん:2010/09/07(火) 23:57:35 ID:???
コンポーネント内で別のコンポーネントの関数を呼ぶにはどうしたらいいですか?
親子関係は定義したくないです。1個関数を呼びたいだけで、それ以外に関係がないので
437nobodyさん:2010/09/08(水) 00:03:20 ID:???
親子にしないで単純にvar $componentsでいけるんじゃないの?
http://www.happytrap.jp/blogs/2009/03/23/793/
438nobodyさん:2010/09/08(水) 00:15:59 ID:???
>>437
dです
あとモデルからもその関数が必要になってしまった。
コントローラをモデルに渡してそれ経由でという強引なやり方以外にありますでしょうか?
439nobodyさん:2010/09/08(水) 00:18:47 ID:???
あ、コンポーネントをモデルに渡せばいいのだろうか
440nobodyさん:2010/09/08(水) 00:25:38 ID:???
根本的にいろいろぐちゃぐちゃ
441nobodyさん:2010/09/08(水) 02:30:02 ID:???
コントローラからコンポーネントを引数にモデルの関数呼んだら
うまくいきました
同じ処理をあちこち書きたくないからしょうがない
442nobodyさん:2010/09/08(水) 02:48:11 ID:???
あほはほっとこうぜ
443nobodyさん:2010/09/08(水) 02:50:03 ID:???
いいから死んで詫びろよ
クズが
444nobodyさん:2010/09/08(水) 02:56:13 ID:???
cakeってMVCどこでも使う処理の置き場に困るよね
445nobodyさん:2010/09/08(水) 03:17:15 ID:???
そんなことないよ
446nobodyさん:2010/09/08(水) 03:23:00 ID:???
一人うざいのがいるな
447nobodyさん:2010/09/08(水) 03:46:25 ID:???
>コントローラからコンポーネントを引数にモデルの関数呼んだ
もっかいMVC勉強してこい

>cakeってMVCどこでも使う処理の置き場に困るよね
vendorsでいいだろ

>>446
お前だ
448nobodyさん:2010/09/08(水) 05:26:59 ID:???
関数化するときのコツは、名前のつけられる処理群は関数にするってのがやりやすい。
あとは二回以上使いまわしたら関数にするとか。
449nobodyさん:2010/09/08(水) 12:13:43 ID:???
オープンソースのライブラリで、vendorsに入れると
表示が反映されない物がある。おそらく、参照先が同階層になっているんだろう。

その場合、ライブラリ側のソースをいじっって、定数を入れたりして
多階層対応にするか、そのままにして、Cake側で工夫するか。

俺は後者を選んだ。オープンソースとはいえ、むやみに手を加えるべきじゃない。
450nobodyさん:2010/09/08(水) 13:05:01 ID:???
表示が反映されない
参照先が同階層
多階層対応

何言ってるのか全く分からない
451nobodyさん:2010/09/08(水) 13:07:08 ID:???
頭悪いんだな
452nobodyさん:2010/09/08(水) 13:16:38 ID:???
./
dirname(__FILE__)
453nobodyさん:2010/09/08(水) 14:01:49 ID:???
ずいぶん荒れてるな

454nobodyさん:2010/09/08(水) 14:30:26 ID:???
荒らしてるのは一人だろ
455nobodyさん:2010/09/08(水) 16:14:15 ID:???
だな
456nobodyさん:2010/09/08(水) 16:37:51 ID:???
うざいとか荒らしとか言って人の意見聞かなけりゃいから成長しないんだよ。
457nobodyさん:2010/09/08(水) 16:40:32 ID:???
定数定義君(笑)がでてきたあたりから回答がひどいことになってるよね
中途半端な知識で人に教えないほうがいいとおもうけどなー
458nobodyさん:2010/09/08(水) 17:18:50 ID:+2USXYbV
モデルにIDの存在チェックを入れて、バリデーションしようとしているのですが、
どういう値でも全てエラー扱いになります。
どこを直せばいいのでしょうか?アドバイスをいただければと思います。

var $validate = array(
'user_id' => array(
array(
'rule' => 'checkUserId',
'message' => 'IDが存在しません',
)
));

function checkUserId()
{
$data = $this->User->findById($this->data['Profile']['user_id']);
if(!$data){
return false;
}
}
459nobodyさん:2010/09/08(水) 17:22:28 ID:???
return true; してないとか。
460nobodyさん:2010/09/08(水) 17:39:15 ID:???
>>458
$this->findById()
461nobodyさん:2010/09/08(水) 17:51:58 ID:???
>>457
回答も回答だが、質問も458みたいに酷いしな
オープンソースなんだからソース読んで自力で解決しろよと思う
462nobodyさん:2010/09/08(水) 18:00:27 ID:???
>>461
どう酷いのか言わないと同じことの繰り返しだよ
463458:2010/09/08(水) 18:12:16 ID:???
>>459
return trueが抜けてました・・。酷い質問で済みませんでした。
464nobodyさん:2010/09/08(水) 18:12:31 ID:???
>>462
>オープンソースなんだからソース読んで自力で解決しろよと思う

と書いてあるわけだが。
ソース読めば、なんですべてエラー扱いになるか理解できるはず。
それを怠って人に頼っている時点で酷いと言ってる。
465nobodyさん:2010/09/08(水) 18:14:01 ID:???
>>461
じゃ聞くが、458のような書き方ってソースの問題か?
単に構築上での質問だと思うが。

そしてそれすらも自分で考えろって言うなら、
>>1で質問受け付けないようにしないとな。
466nobodyさん:2010/09/08(水) 18:28:54 ID:???
>>465
前半、なにを言いたいのかよく分からないが、ソース読めば
trueを返さなければいけないって分かるだろ?

>>1で質問受け付けないようにしないとな。
それ賛成

>>463
勉強する気があるならmodel.phpのinvalidFieldsの中を読んでみ
467nobodyさん:2010/09/08(水) 18:29:06 ID:???
1.3だけど、findAllは使っちゃいけないの?
ぐぐると使用例がいっぱい出てくるけど、使ったらエラーが出た
Warning (512): SQL Error: 1064: You have an error in your SQL syntax; check the manual
that corresponds to your MySQL server version for the right syntax to use near 'findAll'
at line 1 [CORE/cake/libs/model/datasources/dbo_source.php, line 673]
468nobodyさん:2010/09/08(水) 18:29:42 ID:???
オープンソースは自力で問題を解決する物φ( ̄ー ̄ )メモメモ
469nobodyさん:2010/09/08(水) 18:30:42 ID:???
>>467
461さんの一存でこのスレで質問は受け付けられません。お帰り下さい。
470nobodyさん:2010/09/08(水) 18:33:02 ID:???
>>467
findAllはfind('all')になった、詳しくはググれ
471461:2010/09/08(水) 18:33:57 ID:???
>>468
理想を言えばマニュアルやAPI見るだけで理解できればいいんだけどね。
472nobodyさん:2010/09/08(水) 18:38:27 ID:???
どこのスレでも461みたいな奴っているな
嫌なら答えなければいいのに。なにかお前に対して迷惑かかるのかよ
473nobodyさん:2010/09/08(水) 18:43:02 ID:???
find('all')に変更して事故解決しました
474nobodyさん:2010/09/08(水) 20:04:42 ID:???
>>473
質問のタイミングが悪かったねw
475nobodyさん:2010/09/08(水) 20:24:25 ID:???
オープンソースのスレはもう必要なさそうだな
476nobodyさん:2010/09/08(水) 22:09:02 ID:???
>>472
458のためを思って言ってるんだけどね。
あのくらいの問題を自分で解決できないんじゃ、いつまでたっても成長しないだろ?
477470:2010/09/08(水) 22:09:49 ID:???
>>473
俺のおかげで解決って言えええええええ!
478nobodyさん:2010/09/08(水) 23:46:57 ID:???
>>477
あなたのおかげで解決しました
479nobodyさん:2010/09/09(木) 02:03:12 ID:???
お礼強要すんなw
480nobodyさん:2010/09/09(木) 02:05:46 ID:???
お礼は3行以上でお願いします。
481nobodyさん:2010/09/09(木) 02:56:55 ID:???
さらに増やすなw
482nobodyさん:2010/09/09(木) 03:00:37 ID:???
お礼は千行以上でお願いします。
483nobodyさん:2010/09/09(木) 10:33:38 ID:???
マニュアルのわかりやすいとこに答えが載ってるような質問もどうかと思うけどな
しかも回答貰ってんのに自己解決とかいっちゃってるし
484nobodyさん:2010/09/09(木) 10:41:38 ID:???
なりすましで荒らす奴がいるから質問はID出すのが普通じゃね
485nobodyさん:2010/09/09(木) 11:27:23 ID:???
文句や煽りレスをするよりわかるなら教えてやれば良いのにっていつも思う。
自分が知ってて簡単に答えられそうで、尚かつめんどくさくないなら。
面倒な奴は無視すれば良いんだよ。

誰かに教える事で不利益を被るのか?自分もググって他人に教えてもらうのに。
486nobodyさん:2010/09/09(木) 11:30:37 ID:???
>>484
なりすましで荒らすやつより、スレが上がって変なやつわくことのほうがはるかに多いよ?
487nobodyさん:2010/09/09(木) 12:25:37 ID:???
じゃあトリつければいいよ
とにかくなりすましができる環境で質問してあれは俺じゃないとか
実はあれ頴田の俺でしたみたいな感じになるのが荒れる最大の原因だから
488nobodyさん:2010/09/09(木) 12:31:13 ID:???
いやそれが最大の原因ではないよ
489nobodyさん:2010/09/09(木) 13:20:50 ID:???
>>487
お前馬鹿か?それかネットやったことないとか?

荒れるのは十中八九「誰かが構うから」だ。構わず無視しとけばいいだろ。
心底教えて欲しいと思う奴はID出すし、騙られるのが嫌な奴もそうする。
490nobodyさん:2010/09/09(木) 13:22:33 ID:???
昨日から、>>487みたいな「俺ルール」押しつける奴は何がしたいんだ。
いや、おそらく同一人物かなw
491nobodyさん:2010/09/09(木) 13:39:32 ID:???
構わなくても連投してたPerl忍者とかいたじゃん
492nobodyさん:2010/09/09(木) 14:04:42 ID:???
いたからなんだ?
493nobodyさん:2010/09/09(木) 15:55:22 ID:???
>>483
レス見る前に自己解決したんじゃないの?よくあること
494nobodyさん:2010/09/09(木) 16:05:49 ID:???
>>493
仮にそうだとしても、俺なら「自己解決しました」なんて、書けない
レスくれた人に申し訳ないわ
495nobodyさん:2010/09/09(木) 16:07:57 ID:???
どうでもいいよfind('all')くらい。きにすな
496nobodyさん:2010/09/09(木) 16:09:51 ID:???
>>494
いやだからレス見る前に書き込んだんだろ
497nobodyさん:2010/09/09(木) 16:15:27 ID:???
>>496
うん。論外だろ、それ
498nobodyさん:2010/09/09(木) 16:25:31 ID:???
find('all');すごいです!!ありがとうございます!!

他所でやれ
499nobodyさん:2010/09/09(木) 16:30:25 ID:???
マジで自称アングラサイトの「俺は三行まで」を求める馬鹿がいるとは・・・
500nobodyさん:2010/09/09(木) 16:31:11 ID:???
俺は三行までってなんだよwww
501nobodyさん:2010/09/09(木) 17:26:36 ID:???
さんぎょう で変換しても三行が出てこないgoogleIME
502nobodyさん:2010/09/09(木) 17:43:47 ID:???
どうでもいいがぐぐったら、findAllで解説しているサイトが多くてうざいな
Cakeは情報が多くて助かるが多すぎるのもあれだな
503nobodyさん:2010/09/09(木) 17:48:27 ID:???
仕様をころころ変えるCakeが悪いと思うが
504nobodyさん:2010/09/09(木) 17:52:06 ID:???
findAllで良かったろ!なにしてんだ
505底辺:2010/09/09(木) 21:47:14 ID:???
>>405
どういうこと?
爆発の恐れって事?
506nobodyさん:2010/09/09(木) 21:50:33 ID:???
507nobodyさん:2010/09/10(金) 00:50:01 ID:???
BOMがついて困ってる人はいたけど
BOMつけようとする奴ははじめてみた
508nobodyさん:2010/09/10(金) 00:51:02 ID:???
爆発するから気をつけないとな
509nobodyさん:2010/09/10(金) 12:38:20 ID:???
1.3で、デバッグ用にSQL文を表示する方法を教えてください。
ぐぐったら、<?php echo $this->element('sql_dump'); ?>
でいけるとすぐ出てきたのですが、やってみたら
Not Found: /xxx/xxxxx/app/views/elements/sql_dump.html;
とエラーになります。
elements/sql_dump.htmlがないみたいなんですがどこかで入手できるのでしょうか?
510nobodyさん:2010/09/10(金) 13:46:37 ID:???
511nobodyさん:2010/09/10(金) 14:00:06 ID:???
>>509
あぁすまん、よく読んでなかったわ。
sql_dump.ctpは/xxx/xxxxx/cake/views/elementsにあるはずなんだが、ないか?
512nobodyさん:2010/09/10(金) 14:06:03 ID:???
>>509
なんで、 .html なの? sql_dump.ctp だと思うが
拡張子変えてる?
513nobodyさん:2010/09/10(金) 14:51:11 ID:???
第三者だが、>>509に書いてあるコードを今開発しているビューに貼り付けたら
普通にSQL文のテーブルが出力されたけどな。
やっぱ、元ファイルの拡張子をhtmlにしたのが原因だと思う。
514nobodyさん:2010/09/10(金) 15:15:18 ID:???
いや、元ファイルじゃなくて、viewの拡張子をhtmlにしてるんじゃ?
こんな弊害あるのね
515nobodyさん:2010/09/10(金) 15:30:29 ID:???
こうしたら読み込めたりしないかな?やってないけど
<?php echo $this->element('sql_dump.ctp'); ?>
516nobodyさん:2010/09/10(金) 15:57:09 ID:???
>>515
sql_dump.ctp.html を読みに行きそう
517nobodyさん:2010/09/10(金) 16:16:11 ID:???
話がちょっとずれるが、viewの拡張子をphpに変更したとき、
「view.php」というviewファイルを扱おうとしたら動作がおかしくなった。
518nobodyさん:2010/09/10(金) 16:30:54 ID:???
>>515
foreach ($paths as $path) {
if (file_exists($path . 'elements' . DS . $name . $this->ext)) {
$file = $path . 'elements' . DS . $name . $this->ext;
break;
}
}

ってなってるから無理

cssだと拡張子ついててもOKなのに、こういう統一性がないところが嫌だな
519nobodyさん:2010/09/10(金) 23:46:45 ID:???
>>511-
cake/views/elementsのほうにありました。app/views/elementsの方見てた。
解決しました、アリが東
520nobodyさん:2010/09/11(土) 23:25:50 ID:7mKdJQTU
appディレクトリを2つ用意した場合で
それぞれのapp内で同じコンポーネントやヘルパーを使いたいとします。

その場合、どちらかをrequireして読み込む方法しかないのでしょうか?
521nobodyさん:2010/09/11(土) 23:39:30 ID:???
通常のappとそれをコピーしてapp_adminにしてURLで使い分ける方法教えてください
522nobodyさん:2010/09/11(土) 23:42:40 ID:???
なんでそんなことしなきゃいけないんだ
523nobodyさん:2010/09/11(土) 23:43:36 ID:7mKdJQTU
自己レスです。bootstrap.phpに以下のように共通ディレクトリを指定して
そこにファイルを置くと、app内に置かなくても読み込まれました。
App::build(array(
'helpers' =>array(ROOT . DS . 'common' . DS .'helpers' . DS),
));

こういう便利な機能があったんですね。もう少しマニュアル読んで勉強します。
524nobodyさん:2010/09/11(土) 23:57:14 ID:???
それURLで使い分けれてなくね?
525nobodyさん:2010/09/11(土) 23:58:07 ID:???
その質問は>>521だろ?
526nobodyさん:2010/09/12(日) 00:00:49 ID:???
別人だったんだ・・・
527nobodyさん:2010/09/12(日) 00:53:23 ID:???
>>522
PHPで作る携帯サイトって本を買ったんだけど、
appフォルダとapp_adminをドメインで分けて作っていっくことを前提で解説してあったんで
528nobodyさん:2010/09/12(日) 00:58:08 ID:???
>>527
別の方法考えな。
appとapp_adminを分けるってことはそれぞれのフォルダにいくつか同じファイルが存在するってことだろ?
バグ生み出す原因を作るだけだぞ
529nobodyさん:2010/09/12(日) 01:00:58 ID:???
>>527
ようするに別アプリケーションなわけですよ。
てかその本ヒドイ予感
530528:2010/09/12(日) 01:30:51 ID:???
>>527
その本持ってたわw
やり方は本に書いてあるから、よく読め

>>529
前半部分しか読んでないけど、新たな発見があって悪くはなかった。
p118の表とかCakeの流れが分かりやすく書かれてたし。
531nobodyさん:2010/09/12(日) 02:32:07 ID:???
俺もその本持ってて公開用・管理用とで分けてるけど、何がいけないんだ?
同じコントローラーでも公開・管理で仕様が異なるんだから
バグの原因にならないと思うけど。

むしろ、1つのファイルに長々とコードを書いていくことが
バグや見落としの原因になるぞ。
532nobodyさん:2010/09/12(日) 02:53:28 ID:???
>>531
あぁスマン>>528は本見る前に書いたレスだから忘れてくれ。

同じコードがあちこちに散在しているプロジェクトは修正忘れが起きやすくバグをうむ。
だから、>>528みたいな忠告をしたんだけど、ソース見てみたら、
共通なのはapp_model.phpとか、あまりないのな。
533nobodyさん:2010/09/12(日) 03:16:47 ID:???
>>531
ついでだから、こちらも質問させてくれ。

1つの関数に長々とってなら分かるけど、
1つのファイルに長々とコードを書いていくとバグの原因になるのはなんで?
534nobodyさん:2010/09/12(日) 03:23:34 ID:???
てか共通な部分はどうするの?
モデルなんて一緒じゃないの?
535nobodyさん:2010/09/12(日) 03:58:40 ID:???
自分はやんない派だけど検索パスの追加かなー?
536nobodyさん:2010/09/12(日) 04:35:47 ID:???
あ、そっか
views,controllersは別々で問題ない。
configあたりはほぼ同じ内容でコピペなんだろうね

でもなんだかんだで同じ処理って出てくるよなぁ
メンテナンス性は落ちそうに思うんだけどな
537nobodyさん:2010/09/12(日) 05:12:08 ID:???
>>533
前者がわかるのになぜ後者がわからないの?
単にコードが長いと見落としがあるだろ。
それ以外も出来るだけコードを簡潔にするのが良いって聞いたこと無いか?

>>534
それは>>523にすればいいんじゃねぇ?
実質、configファイルのコピーだけだと思う。

俺の場合、公開用・管理用とで分けてるから、同じような処理は出にくいな。
findのconditionやsaveの条件も異なるし。ビューの表示する内容も。
538nobodyさん:2010/09/12(日) 05:14:56 ID:???
ま、appを分けなくても function admin_index()とか
コントローラー内でアクション分けする方法もあるから、
自分が管理しやすい方法でやればいいと思うよ。
539532:2010/09/12(日) 09:03:48 ID:???
>>537
コロコロ意見変わってスマンが、やっぱり>>532は撤回。
たまたまチェックしたmodelのファイルの中身がアソシエーションとバリデーションの
設定くらいしか書いてなかったから、このくらいならいっかと思ったけど、
よくよく調べると、他にも同じようなコードが散在しているね。

メンテナンス性を考えるとモデルくらいは>>523のようにした方がいい気がする。


>単にコードが長いと見落としがあるだろ。
>それ以外も出来るだけコードを簡潔にするのが良いって聞いたこと無いか?


関数なりメソッドなりのコードを簡潔にするってのは聞いたことあるけど、
ファイルを短くた方がいいなんて聞いたことがないな。
ファイル分割したら、コードの見落としって減るか?
1つのファイルに100個ぐらい関数あったら、見落としそうってのも分かるけど、
Cakeのファイルなんて普通は多くても10個や20個じゃない?
540nobodyさん:2010/09/12(日) 13:24:32 ID:???
なるへそ
541nobodyさん:2010/09/12(日) 13:44:17 ID:???
>>539
あんまりスクロールが長いと可読性が下がって見落としが増える。
コメントを充実させたり、役割ごとにきちんとファイル分けした上での関数10個なら問題ないと思う。
ごった煮でファイル名が曖昧になるようなファイルは関数10個でも見辛い。
542532:2010/09/12(日) 14:02:34 ID:???
>あんまりスクロールが長いと可読性が下がって見落としが増える。
PDTみたいなの使ってない?
PDTだと関数一覧が表示されるから、そういう理由で可読性が下がることはないと思うぞ。
便利だし、使ってみたら?

>ごった煮でファイル名が曖昧になるようなファイルは関数10個でも見辛い。
それは論外でしょ
543nobodyさん:2010/09/12(日) 15:11:59 ID:???
>>542
普通にありえるだろ。
数学ファイルなのか、ベクトル計算ファイルなのか、二次元ベクトル計算ファイルなのか、内積計算ファイルなのか。

抽象化されたファイル名になればなるほど、およそ関係ないか、他でも再利用可能な便利関数でてくる。
トレードオフな関係に論外はありえない。
544nobodyさん:2010/09/12(日) 16:11:10 ID:???
>>542
君は会員専用や管理画面も同じファイルに書いてるの?
545nobodyさん:2010/09/12(日) 17:27:22 ID:???
>>544
自分が書いたCakeのアプリはそうだね。
分割してもControllerやModelのコードの半分以上が共通になるような仕様だったから。

>>527のControllerみたいに共通する部分がほとんどない場合は分割すればいいと思うよ。


>>543
曖昧になるのは単にセンスがないだけだと思うのだが。

たぶん単なる例えで言ったんだろうけど、
>数学ファイルなのか、ベクトル計算ファイルなのか、二次元ベクトル計算ファイルなのか、内積計算ファイルなのか。
って、全部まとめてmathファイルでよくね?
546nobodyさん:2010/09/12(日) 17:49:39 ID:???
>>545
センスで作られたコードほど読み辛いものはないし
曖昧なケースなんてコーディングしてればいくらでもでてくるだろ…

中、大規模なコーディングしないと解らないのかもしれん。
547nobodyさん:2010/09/12(日) 19:06:17 ID:???
オブジェクト指向初心者の私に誰かアドバイスをくだされ。

model内の変数を処理する時に、配列を使うか、オブジェクトにしちゃうかの判断は
どうすればよいでしょうか?

オブジェクトってどこからでも取り出せて便利だから、今まで 

$thisMonth = date(m);
こんな感じでやっていたのも、

$this->thisMonth = date(m);

のように基本的に全部オブジェクトにしたらいいんじゃないか?って思っちゃったのですが、
大きな間違いでしょうか?(重くなるとか・・)
548nobodyさん:2010/09/12(日) 19:13:04 ID:???
>>547
えーと、なにを言いたいのかサッパリ分からない。
549547:2010/09/12(日) 19:21:33 ID:???
>>548

分かりにくくて申し訳ないです。

functionをまたいで使用する値を格納する時に、
全部オブジェクトにしちゃうのはまずいのだろうか?っていう疑問です。

下記のような形の時です。

public function getDate(){

$this->thisMonth = date(m);
}

public function showDate(){

$this->getDate();
echo $this->thisMonth;
}
550nobodyさん:2010/09/12(日) 19:22:56 ID:???
それただのメンバ変数
というか此処で聞くことじゃないってわからないの?
551547:2010/09/12(日) 19:30:59 ID:???
すいません。スレ違いでしたか。
申し訳ありませんでした。

メンバ変数というのですね、ググって勉強しなおします。
どうもありがとうございます。
552nobodyさん:2010/09/12(日) 19:54:10 ID:???
ちょww
単に覚え間違いだったのかw
553nobodyさん:2010/09/12(日) 19:59:05 ID:???
別に笑うところじゃないし。何がおかしい?
554nobodyさん:2010/09/12(日) 20:03:01 ID:???
ちょwwwwwwwwwwwwww
555nobodyさん:2010/09/12(日) 20:08:24 ID:???
呼び名なんて別にどうでもいい。
最初からソース提示してるんだからわかる。スレ違いなだけ。
それに対して「単に覚え間違い」とかずれたツッコミしてるんだけど?
556nobodyさん:2010/09/12(日) 20:08:24 ID:???
>>553
メンバ変数をオブジェクトだと思っていたところ。
そしてそれをオブジェクト指向と関係があると思い、
CakePHPのスレで質問したところ。
更に、547自身が何を笑われているかわからないところ。
557nobodyさん:2010/09/12(日) 20:09:17 ID:???
>呼び名なんて別にどうでもいい。
>最初からソース提示してるんだからわかる。スレ違いなだけ。

俺らはエスパーだと思ってるの?
558nobodyさん:2010/09/12(日) 20:10:04 ID:???
>>550 = >>553 == >>555 == 俺
わからないお前がバカだから消えろ
559nobodyさん:2010/09/12(日) 20:13:00 ID:???
>>556
オブジェクト指向と関係あるよ
560nobodyさん:2010/09/12(日) 20:13:46 ID:???
CakePHPとは?
561nobodyさん:2010/09/12(日) 20:18:41 ID:???
自分より知識がないだろうと思うと茶化す
実にくだらない
562nobodyさん:2010/09/12(日) 20:41:18 ID:???
少し知った奴が初心者を馬鹿にする行事がまた行われたのか…
毎度ご苦労様です!
563nobodyさん:2010/09/13(月) 00:08:18 ID:???
1.3.4がでたらしいな

と思ったら

2.0系もでんのか??

スピードはええな
564nobodyさん:2010/09/13(月) 00:13:59 ID:???
>>563
お、いつのまに更新されてたか。

2.0はだいぶ前から出てるよ。
565nobodyさん:2010/09/13(月) 03:04:28 ID:???
>>564
2.0マジか!知らなかった・・・

1.2.xから1.3.xの時は結構大変だったけど、
2.0系も別物な感じなの?

今日知ったばかりでまた情報集めてるとこなんだ

# やっと管理してるの片っぱしから1.3.3にしたのに。。。
566nobodyさん:2010/09/13(月) 14:33:45 ID:???
1.1から1.2はけっこう変わったけど、1.2から1.3はそれほどでもない
オフィシャルのマイグレーションガイドも、ちょっとだけだったし
2.0はまったく見てないからわからん
567nobodyさん:2010/09/13(月) 14:41:19 ID:???
>>565
ついでに言うと3.0も。
途中でプロジェクトが分離して、今は名前が変わっちまったがな。
568nobodyさん:2010/09/13(月) 14:47:44 ID:???
配列地獄はいつ解消されますか?
569nobodyさん:2010/09/13(月) 14:51:55 ID:???
>>568
Cake系を使い続けるかぎり無理じゃね?
Lithiumも配列地獄っぽいし。
570nobodyさん:2010/09/13(月) 16:48:46 ID:???
>>566
>>567
ありがと 昨日、流れっていうのかな見たよ
プロジェクトなのか派生なのかずいぶんでてるんだね
純正というかメインのStableはCakePHP1.3.3ってことでいいのかな

>>568
配列は慣れな気がしてきたよ
571nobodyさん:2010/09/13(月) 17:56:55 ID:???
オレオレフレームワークでも配列使ってたから、移行に違和感なかったな。
ただ、モデル(テーブル)を$data['User']['name']感じにする概念は無かったが。
572nobodyさん:2010/09/14(火) 17:23:02 ID:sGtN+/un
controllerがUTF-8でビューはShift-JISにしています。
afterFilterを使って出力時にmb_convert_encodingで
UTF-8からSJISに文字コード変換する方法は良くあるのですが、
findでデータ取得の時にSJISにする方法ってないでしょうか?
573nobodyさん:2010/09/14(火) 17:36:34 ID:???
>>572
ビューもUTF8にしてafterFilterで文字コード変換じゃダメなの?
find時に文字コード変換はafterFindでできそうな気がするけど、
DBもUTF-8で作ってるのにビューだけShiftJISにこだわる理由はあるんだろうか
574nobodyさん:2010/09/14(火) 18:12:47 ID:sGtN+/un
>>573
携帯用のビューでして、ShiftJISで表示させたいんです。
575nobodyさん:2010/09/14(火) 18:15:45 ID:???
>>574
まずsageようじゃないか
そして>>573にあるように、UTF-8でつくろう
方法はキミが分かってる通りだ
576573:2010/09/14(火) 18:22:34 ID:???
質問時はsage推奨って>>1に書いてますね。すみませんでした。

あと、UTF-8で作る方法は知っていますが、>>574で書いたとおり、
携帯用のビューはShiftJISなのでそうしたいんです。
現代の携帯端末はほとんどUTF-8に対応しているとはいえ、、
今までそれで表示していて問題がなかったので。

でも、それしか方法がないと言うなら、一旦findで配列を取得して
foreachでmb_convert_encodingしてSJISに変換し、ビューに渡す方法にします。
577572:2010/09/14(火) 18:23:30 ID:???
番号間違えました・・。>>576>>572です。
578nobodyさん:2010/09/14(火) 18:25:53 ID:???
またひとりアドバイスに従わない強者がいたか
579nobodyさん:2010/09/14(火) 18:26:27 ID:???
>>576
どうしても、ビューはShiftJISにしたいっていうなら、
mb_convert_encodingの処理はafterFind()の中に書けばいいと思うよ。
580nobodyさん:2010/09/14(火) 19:09:36 ID:???
viewで変換できないん?
581nobodyさん:2010/09/14(火) 19:30:32 ID:???
utf8の方が女にもてる
582nobodyさん:2010/09/14(火) 19:56:50 ID:???
携帯サイトってShift_JISで作るんじゃないの?
軽くググったら、そういう解説ばかりだけど。
583nobodyさん:2010/09/14(火) 20:28:55 ID:???
どんなにググってもviewだけsjisなんて解説出てきません ><
584nobodyさん:2010/09/14(火) 20:29:18 ID:???
utf8で作ってもフォームから送られてくるのはshift_jisだったりするよね?<au
softbankはその逆だっけ?
585572:2010/09/14(火) 20:37:37 ID:???
やっと指摘されてる意味がわかりました・・。
ViewもUTF-8で作成して、出力時はafterFilterでShift-JISにし、
View内のmetaのContent-TypeをShift_JISにすれば、何も問題ないんですね。

お騒がせしました。
586nobodyさん:2010/09/14(火) 20:40:04 ID:???
いや、ctpはUTF8で作って、出力をSJISにすれば良いじゃない。そっちのが、あとあと楽だと思う。
587nobodyさん:2010/09/14(火) 20:51:33 ID:???
変換テーブルがアレだから実際UTF-8でやると特定の文字でハマるかも。
絵文字変換のついでに対策すればいいんだけど。
588nobodyさん:2010/09/15(水) 10:54:40 ID:???
CakePHPってカスですね
初心者には敷居が高くて難しいんですよ、これ
もちっと簡単にしてほしかったですね
589nobodyさん:2010/09/15(水) 11:02:19 ID:???
カスなのは初心者なんだよ。
カスから脱出するために、皆頑張っているのだ。
590nobodyさん:2010/09/15(水) 11:37:03 ID:???
きっとPHP自体が初心者なんだろ
PHPが初心者だったらどのフレームワーク使ったって一緒だ
591nobodyさん:2010/09/15(水) 11:46:50 ID:???
一応、C,C++,C#,Javaできますが
592nobodyさん:2010/09/15(水) 12:06:13 ID:???
>>591
それだけの経験があっても理解ができないのが、ある意味すごい
無 能 だ な !
593nobodyさん:2010/09/15(水) 12:12:37 ID:???
hello worldができるってだけだろ
594nobodyさん:2010/09/15(水) 12:31:33 ID:???
人をおちょくるのもいい加減にしてください

if,swtich,case,break,do,while使えますよ!
595nobodyさん:2010/09/15(水) 12:32:29 ID:???
IDでねーのだるいな。PHPすら理解してない奴は勘弁だ
596nobodyさん:2010/09/15(水) 12:34:15 ID:???
匿名掲示板でIDの意味はないと思うが・・・
597nobodyさん:2010/09/15(水) 14:56:01 ID:???
>>596
ネットワークを使い分けるとかしない一般人であれば、
少なくとも、俺とお前が別人だって示せる
598nobodyさん:2010/09/15(水) 18:59:43 ID:???
routes.phpに
Router::connect('/', array('controller' => 'top', 'action' => 'index', 'home'));
とすれば、初期画面を指定できますが、
同じコントローラーで別のアクションを実行するには
http://hoge.com/top/add
のようにしなくてはいけません。これを
http://hoge.com/add
とする方法は無いのでしょうか?
599nobodyさん:2010/09/15(水) 19:42:02 ID:???
Router::connect('/add', array('controller' => 'top', 'action' => 'add'));
600598:2010/09/15(水) 19:54:47 ID:???
希望通りできました。ありがとうございました。
601nobodyさん:2010/09/15(水) 20:10:25 ID:???
'home' つけっぱだし、もっかいドキュメント読み直したほうがいいよ
602nobodyさん:2010/09/16(木) 01:00:40 ID:???
携帯でアクセスすると、mobile_がついたメソッドとビューを読み込みたいです。
routes.phpの設定で以下のようにする方法を良く目にするのですが、
Router::connect(‘/m/:controller/:action’, array(‘prefix’ => ‘mobile’));
この方法ではURLを変更する事になります。

同一URLで振り分けたいのですが、
上記以外でメソッドにprefixを付ける方法はないでしょうか?
603nobodyさん:2010/09/16(木) 01:42:28 ID:???
>>602
君、>>598でしょ?
質問する前に少しは自分で考えたらどうだい?
604nobodyさん:2010/09/16(木) 01:45:59 ID:???
>>602
Webサーバ側でやればいい。
605nobodyさん:2010/09/16(木) 02:54:46 ID:???
>>603
同じroutesの質問してますが、違います。
それに半日考えてググってソースも見てどうしようもなく質問しました。

>>604
それだとCakeを使う意味がない気がします。
606nobodyさん:2010/09/16(木) 06:55:26 ID:???
>>602
最近CakePHP触ってないからうろ覚えなんだけど、
controller.phpにbeforeFilterを定義して、携帯からのアクセスか
PCからのアクセスかを判別する処理をそこに書く。
その中でコントローラを割り振るようにできるんじゃないかな?
確かコントローラ名が$thisに入ってたよね
607nobodyさん:2010/09/16(木) 07:11:12 ID:???
>>605
Ktai Library 使いましょう
608nobodyさん:2010/09/16(木) 09:33:19 ID:???
Model内でセッションの受け渡しをするのはまずいのでしょうか?

Controller内で
    $this -> Amazon -> setSession($this -> Session);  

と記述し、

Model内で、
public function setSession($session){
$this -> Session = $session;
}

と記述。この後、モデル内で、

$this->Session->write('page_list',$page_list); 

などとコントローラで書くような記述をしています。

しかし、firefoxでは問題ないけど、IEやChromeでセッションの受け渡しが
上手く行かない問題が出てきて、もしかして、このやり方をしているかが原因なのかなと
思いました。

普通に、モデル内で使いたいなら、$_SESSIONで書いたほうがいいのかなあと。
609nobodyさん:2010/09/16(木) 14:56:55 ID:???
>>602
beforFilterあたりでIPかUAを見てprefixつけられなかったっけ
と思ったら>>606が同じようなこと書いていたな

>>603
基本的なroutesもよくわかってなかったやつが一日でprefixの質問するレベルに成長するとは思えないぞw

>>607
作者さん?
機能強化よりシンプルでわかりやすい仕様にしてくれ
610nobodyさん:2010/09/16(木) 16:04:35 ID:???
>>607
MASA-Pさん、上の方で本がバカにされてましたよ
611nobodyさん:2010/09/16(木) 17:32:15 ID:???
>>607
文字コードの扱いが困る時があります。
もう少し柔軟にして下さい。
612nobodyさん:2010/09/16(木) 19:56:27 ID:???
>>605
すべてCakeでやる必要なんてないだろ?
613nobodyさん:2010/09/16(木) 21:04:42 ID:???
かといってバーチャルホストにするほどか?
614nobodyさん:2010/09/16(木) 21:18:40 ID:???
バーチャルホストとかじゃなくて、/hogeにリクエストが来たらapacheでIP見て、PCなら/hogeのまま
ケータイなら/m/hogeにrewriteすりゃいいって話じゃないの?
615nobodyさん:2010/09/16(木) 21:40:20 ID:???
beforeFilter()やらで判別してmobile_アクション() 呼べばいいんじゃない?
616nobodyさん:2010/09/16(木) 22:07:43 ID:???
MASA-Pさん、ドメイン分けずに本の内容通り進める方法教えてください
617nobodyさん:2010/09/16(木) 23:18:48 ID:???
beforeFilterでmobile_アクション呼ぶ方法を教えて下さい!(><)
618nobodyさん:2010/09/17(金) 00:51:47 ID:???
>>613
むしろ、バーチャルホストでどう実装するのか聞きたい。

>>616
本の通りに書いていれば、ドメイン分けずにすむだろ。
619nobodyさん:2010/09/17(金) 10:08:15 ID:???
MASA-Pさん、電子書籍にしてください
620nobodyさん:2010/09/17(金) 12:39:29 ID:???
誰が誰やら
621nobodyさん:2010/09/17(金) 19:08:58 ID:???
CakePHP 携帯ライブラリと位置情報ライブラリを使った簡易GPS検索プラグイン「GeoSimple Plugin」 : エクスギア Blog
http://www.exgear.jp/blog/2010/09/geo_simple_plugin/

便利そうなんだが、ライブラリ依存しないCakePHPのプラグインがライブラリ依存してるというのも皮肉な話だな
622nobodyさん:2010/09/17(金) 19:23:15 ID:???
×依存
○利用
623nobodyさん:2010/09/17(金) 21:12:29 ID:???
ま、使える物は便利に使わせてもらうぜ。先人達のご厚意だ。
624nobodyさん:2010/09/20(月) 01:01:46 ID:???
CakePHP1.3のAuthを使った認証システムを作っています。
エラーメッセージを出そうと、Cookbookの
http://book.cakephp.org/ja/view/1252/Displaying-Auth-Error-Messages
を見て同じようにビューにecho $session->flash();と記述したのですが、
Undefined variable: sessionのエラーが出ます。

これはどうしてでしょう?$this->set('session', $session)みたいにして
ビューに渡す必要はないですよね?
625nobodyさん:2010/09/20(月) 01:23:29 ID:???
↑の自己レスです。
ログイン情報を記述しているapp_controllerにヘルパーを指定してるのですが、
そこにSessionを指定しないとエラーが出るみたいです。
626nobodyさん:2010/09/20(月) 05:35:42 ID:???
>>625
自分で言っているとおり、Sessionヘルパーを使うことを
宣言する必要があると思いますよ。

class AppController extends Controller{
var $helpers = array('Session');
}

Sessionコンポーネントは宣言してなくても使えるけど、
Sessionヘルパーは宣言する必要があったはずです。
627nobodyさん:2010/09/22(水) 08:56:04 ID:R9kqnTJB
チュートリアルをはじめてるのですが、テーブルを作成するという箇所で
とまってしまってます。
データベースを作成する過程がないので、どのデータベースにテーブルを
作成するのかがわかりません。
628nobodyさん:2010/09/22(水) 08:58:32 ID:???
好きなとこでいいよ。
チュートリアルの次のページを見れば分かる。
629nobodyさん:2010/09/22(水) 09:54:00 ID:R9kqnTJB
>>628
ありがとうございます。
これで先に進めます。
630nobodyさん:2010/09/22(水) 14:23:14 ID:???
cakephp以前の問題だな・・・なんだこのスレ
631nobodyさん:2010/09/22(水) 18:54:44 ID:???
>>627
モデル名 → テーブル名

と考えるとわかりやすいよ。
ただし、モデルの命名規則とテーブルの規則は違うから注意。
例)モデルでUserならテーブルはusersを作成する
632nobodyさん:2010/09/22(水) 19:50:42 ID:???
>>627がそういうことを聞いているようには見えない。
別に煽るわけじゃないんだが……
633nobodyさん:2010/09/22(水) 20:19:43 ID:???
テーブルに命名規則があるからDB名にも命名規則があるのかと思っただけじゃない?
634nobodyさん:2010/09/22(水) 23:10:29 ID:???
もう解決してんだろアホのくせに書き込むな
635nobodyさん:2010/09/23(木) 00:14:42 ID:???
>>627の疑問は解決してても、俺らの疑問はまだ解決してない
636nobodyさん:2010/09/23(木) 08:16:19 ID:???
たぶんネタだと思うが。
637nobodyさん:2010/09/23(木) 13:13:13 ID:???
単なる初心者に対してそこまで深く追及する必要があるのか?
638nobodyさん:2010/09/23(木) 14:23:16 ID:???
初心者をいじることに喜びを感じる奴が常駐してるから仕方ない
639nobodyさん:2010/09/23(木) 14:43:20 ID:???
PHP歴3年で、開発してるがCake触ったことない俺がきたよ。
公式のサンプルやり始めた俺には参考になるよ。
命名規則で結構引っかかってたところ。

サンプルだとpostっていうモデル作ったら
DBはpostsにしろって言われてなんでsつけるのか意味不明だった。
コントローラーにもよくわからない形(posts_controller.php)
とか名前つけてるから?が多かった。

自動解釈してくれるからこういう形式にしろよって意味だろうけど
書籍なしでいきなり始めるとわけわかめ。
640nobodyさん:2010/09/23(木) 15:01:57 ID:???
あのチュートリアルはニコニコとかYoutubeとかUstreamでyandodさんが解説してくれてるぞ、たしか。
641nobodyさん:2010/09/23(木) 15:15:12 ID:???
英語の複数形だろ。。。>s
642nobodyさん:2010/09/23(木) 15:23:18 ID:???
>>641
そんなことはわかってるが、なぜ複数形にする必要があるのか?
という点が意味不明だったわけだよ。
643nobodyさん:2010/09/23(木) 15:29:51 ID:???
>>641
お前はもう黙ってろよ一生
644nobodyさん:2010/09/23(木) 15:32:43 ID:???
レコード→post
テーブル→posts

レコードがたくさん集まってテーブルになるんだ。
これはphpやMVCとは関係ないDBの基本だからな、覚えとけよ。
645nobodyさん:2010/09/23(木) 15:56:34 ID:???
>>640
ありがとう、早速動画見つけたので見てるが
すごいわかりやすくて助かる。

Cから入った人間だから、C++のときもそうだったけど
オブジェクト指向とか、MVCモデルについては
なかなかとっつきにくかったけど、これはありがたい。
646nobodyさん:2010/09/23(木) 16:05:37 ID:???
bbsのためにbbssコントローラ作ったりするんだろうな
647nobodyさん:2010/09/23(木) 17:39:58 ID:???
鯉を管理するためにはcarpテーブルが必要
単数形と複数形が同じなので注意!
648nobodyさん:2010/09/23(木) 20:19:39 ID:???
ま、俺はs付けないけどな。
649nobodyさん:2010/09/24(金) 02:17:58 ID:???
あの複数形と単数形のルール紛らわしいよな。
650nobodyさん:2010/09/24(金) 03:14:33 ID:???
ところでさぁ。
新規の開発にしか使えないFWってどんなメリットがあるのよ?
既存の改修とかに使えないんだろ?
チンカスレベルの屑FWとしか言えんだろ?
651nobodyさん:2010/09/24(金) 03:55:59 ID:???
作業高速化のためにFW使ってるのにわざわざそのFWに合わせて作り直すの?本末転倒だろ
652nobodyさん:2010/09/24(金) 08:33:43 ID:???
ぶっちゃけ、大して作業が高速化する分けじゃないけどな。
むしろ命名規則にのっとたり、書き方も厳密にしなきゃいけないし、
よけない手間が増える。

だが、優柔不断な俺にはそれが良い。
653nobodyさん:2010/09/24(金) 08:42:53 ID:???
そもそも既存のシステムのためにFWを導入するわけではないと思うよ?

PHPみたいに甘い言語だと、プログラマーによって
かなりオレオレ仕様だったり、ソースがわかりずらかったりするから
フレームワーク使うと、統一化されて跡から保守しやすいっていうメリットが生まれる。

また、ページごとにやってたようなエラー処理だとか
フォームの入力チェックみたいな処理も自動化出来てわかりやすい。

どちらかというと3人程度〜の新規開発向けだと思うよ。
個人でやってぱぱっと作るならFW使わなくても別に困らないしw
654nobodyさん:2010/09/24(金) 09:42:52 ID:???
命名規則なりクラス構成規約なりを開発メンバーに強制することにより、
多少の生産性は犠牲にしつつも保守性を上げるための仕組み、
という面は確実にある気がする。
慣れてくればそのオーバーヘッドもだんだん減ってくる(はず)だし、
そもそもFWって元来そういうもんだよね。

CakePHPの場合は強制される規約が多すぎて、
たとえばタグライブラリ的な使い方をしようと思ったときに
ちょっと難しい部分があるのも事実だけど。
655nobodyさん:2010/09/24(金) 09:50:20 ID:???
>>653-654
でも、それらって中小以上の、制作会社なら
独自の規約やルールが決まっていると思うんだよな。
フォームヘルパーのようなライブラリも作ってるだろ。

SOHOなら別にオレオレでも構わないと思うし、規模もたかが知れてる。
かといって、規模が大きめの案件ならFWは速度的なネックがある。

まぁ、俺はオレオレの仕様変更が多くて定まらないから、
Cake使ってるんだけどな。規模が小さい案件ばかりだし。。
656nobodyさん:2010/09/24(金) 10:26:20 ID:???
http://www.amazon.co.jp/dp/4798027456/
CakePHP辞典 Pocket詳解 [単行本]
657nobodyさん:2010/09/24(金) 11:22:13 ID:9bxZAnFY
DB使ってない状態で
paginatorのようにページ送りしたいんだけど、
いい方法ってありますか??
658nobodyさん:2010/09/24(金) 11:22:15 ID:???
レコード1個のフィールド1個だけちょこっと更新したいんだけど
普通にfindしてからsaveしないと駄目?
saveByIdとか簡単な関数ないの?
659nobodyさん:2010/09/24(金) 11:33:35 ID:???
>>658

$dataにidがあればupdateになるから

array(
'id'=>1,
'field1'=>'hoge',
);

これをsaveすればid1のfield1のみアップデートされる
660nobodyさん:2010/09/24(金) 11:34:10 ID:???
>>658
良くわからない事言ってるが、
保存されている情報を取得するならfind(select)は必須だろ?
saveAllにしてパラメータ指定するのはダメなのか?
661nobodyさん:2010/09/24(金) 11:35:49 ID:???
ああ、更新か。読み違えてた。すまん。
662nobodyさん:2010/09/24(金) 11:37:22 ID:KWM9yVDw
ctpファイルの中に、

<?php echo $html -> css('hoge', null, array('inline' => false)); ?>

のようにして、レイアウトの $scripts_for_layout にCSSの記述を追加できますが
タイトルは、コントローラから

$this -> set('title_for_layout', 'ほげほげ');

とするしか手がないんでしょうか。
タイトルもctpファイルからレイアウトの $title_for_layout に設定できたらいいんですが
できないものなんでしょうか。
663nobodyさん:2010/09/24(金) 12:09:19 ID:???
>>657
Webサービスとかなんらかの読み込み元のデータはあるんでしょ。

find、_findCount、_findAll あたりをオーバーライドしたモデルを作るか、
データソースドライバを作ればPaginator関係はそのまま使えるので便利。
664nobodyさん:2010/09/24(金) 12:16:54 ID:???
>>659
すみません質問間違ってました、id以外をキーにしてそれできませんかね。

できないなら、やはりfindしてidを取ってこないといけないですよね。
665nobodyさん:2010/09/24(金) 12:39:38 ID:???
>>662
Controllerクラスだけでなく、Viewクラスにも pageTitle というプロパティがあるので、
ctpファイルのどこかで
<?php $this->pageTitle = "ほげほげ"; ?>
とすればOKだと思う。
666659:2010/09/24(金) 13:31:47 ID:???
>>664
updateAll使えばできたんじゃないかな
667nobodyさん:2010/09/24(金) 14:39:38 ID:???
>>665
答えに近いこと書いてあるけど、質問者の使ってるの1.3だからさ
668662:2010/09/24(金) 15:21:06 ID:???
あー、すみません、バージョンは1.3です。
このあたり、1.3で仕様が変更になっているんですよね。
'inline' => false の指定方法とか。

<?php $title_for_layout = 'ほげほげ'; ?>

のようにctpファイル内で変数をしてみましたが、レイアウトには適用されませんでした。
もう少し調査してみます。
669nobodyさん:2010/09/24(金) 16:20:29 ID:???
>>663
ありがとうございます。やり方がわかりました!

シリアライズされた元のデータがあるので、
それを扱う例があれば嬉しいですけど、ネットで探しても見つからない
って時は作るしかないですよね。。わがままですよね
670nobodyさん:2010/09/24(金) 16:33:01 ID:???
>>669
てか、いきなりCakePHP(フレームワーク)からはじめたの?
普通は、素のPHPのプログラミングを勉強していって
君の言う改ページ処理やファイルに書き込む処理など
基本的なコードを書いて勉強していくと思うんだけど。
671665:2010/09/24(金) 16:55:01 ID:???
>>667
最近使っていなかったから1.2の感覚で書いてしまいました・・・。
前に作ったの移行してみようかな。

>>668
すみませんでした。
http://book.cakephp.org/ja/view/1566/View-and-Helpers
このページを見る限りでは、
<?php $this->set('title_for_layout', "ほげほげ"); ?>
だと思います。
672662:2010/09/24(金) 17:18:44 ID:???
>>671
コントローラから

<?php $this->set('title_for_layout', "ほげほげ"); ?>

は当然効くんですが、Viewからは効いていないですね。
コアのコードを追ってみるか・・・。
673nobodyさん:2010/09/24(金) 17:25:48 ID:???
>>669
Modelでpaginate()とpaginateCount()を実装する。
他はsave()やfind()を透過的につかうかによって変わるけど、
内部データへのアクセス自体を独自にしてしまったほうが単純に楽だと思う。
674665:2010/09/24(金) 17:44:00 ID:???
>>672
あれ?さっき1.3ダウンロードしてきて適当にコアファイル差し替えて試したら
うまくいったっぽいので大丈夫かと思いましたが、だめでしたか。

"title_for_layout タイトル" でぐぐって、一番上にくるので試してみても
うまくいったので、そっちの方法がよさそうですね。

675nobodyさん:2010/09/24(金) 18:49:30 ID:???
コントローラーからシェルを実行するにはどうすればいいのでしょうか?
App::importで読み込んでクラスをnewするのでしょうか?
676nobodyさん:2010/09/24(金) 18:59:00 ID:???
>>662
<?php $this->title_for_layout = 'ほげほげ'; ?>
じゃね?
677nobodyさん:2010/09/24(金) 19:16:14 ID:???
>>675
ShellDispatcher
それかふつうに子プロセスで呼ぶ。
678nobodyさん:2010/09/25(土) 00:54:21 ID:wsz3lHFZ
>>670
基本的なことが抜けてるのはあってますが(笑)
いきなりでは無いですよ、もっと勉強します

>>673
>Modelでpaginate()とpaginateCount()を実装する。
本当はこれやりたかったんですが、簡単なほうを選んで
自前ページャーで作ってしまいました、次回はこれ使います!
教えて頂きありがとうございました。
679nobodyさん:2010/09/25(土) 05:06:39 ID:???
>>659
モデル内でそのようにsaveすると
$this->save( array( 'id' => $data, 'name' => $name ) );
以下のエラーが出ます。
SQL Error: 1054: Unknown column 'Array' in 'field list' [CORE/cake/libs/model/datasources/dbo_source.php, line 673]
Query: UPDATE `tablename` SET `id` = Array, `name` = 'xxxx'

1.3.2ですが、何か最近変わったりしたんでしょうか。
680nobodyさん:2010/09/25(土) 05:10:47 ID:???
すんません>>679はミスでした
寝ます
681nobodyさん:2010/09/25(土) 05:10:51 ID:???
1.3使ってないけど、実行してるSQLがまさにそこに表示されてるんだから
解決するのはそんなに難しくないような気がする
682nobodyさん:2010/09/25(土) 06:24:18 ID:???
1.3ですがvalidateが不可解な動きをします。
あるモデルにユニークを保証したい文字列user_idがあり
var $validate = array(
'user_id' => array(
'rule' => 'isUnique',
'message' => 'must be unique'
)
);
と指定。
モデルにレコードの新規作成関数を以下のように用意しました。

// 初期データ
$userInfo = array(
"UserInfo" => array(
"id" => null,
"user_id" => $user_id,
"level" => 1,
...
)
);
$this->create();
if ( $this->save() ){
var_dump('save ok');
return;
}
var_dump('validate ng');

つづく
683nobodyさん:2010/09/25(土) 06:25:31 ID:???
そしてこれを既存のuser_idで呼んでみると、validate ngと出て新規作成は阻止されますが、
何故か既存のデータが上記の初期値で更新されてしまいます。
これは正しい動作なんでしょうか。

また、validateの条件をnumeric等に変えてみるとこの現象は起きません。

わけわからんので誰か謎を解いてください。
684nobodyさん:2010/09/25(土) 07:18:00 ID:???
あいかわらずアホばっかりだな
685nobodyさん:2010/09/25(土) 14:24:39 ID:???
発行されるSQLは?
686nobodyさん:2010/09/25(土) 16:02:35 ID:???
>>685
CakeのSQLダンプではCOUNTしか発行されてないようですが、
MySQLのログを見ると普通にUPDATEされちゃってます。

つーかSQLダンプってあてにならないのか…。

ちなみに自分でif ( $this->validates($userInfo)
とかやって駄目な時はsaveしないようにしても更新されちゃいます。
687nobodyさん:2010/09/26(日) 09:19:40 ID:???
説明も不十分だし、全部どっかうpしたほうがいいんじゃねえの?みてもらえるかは別として。
688nobodyさん:2010/09/26(日) 13:07:37 ID:???
どの辺が不十分ですか?
689nobodyさん:2010/09/26(日) 19:05:33 ID:???
スレが止まるほどの難問なのか
690nobodyさん:2010/09/27(月) 01:59:38 ID:???
>>653
その理屈は結構前の話しだな。
今はフレームワークも便利な機能てんこもりで、
独りで作るのにも利用しないと大幅に差が出る。
691nobodyさん:2010/09/27(月) 09:51:39 ID:???
>>688
横からだけど
CakePHPのダンプに出てないということは、CakePHPのsave()以外が更新している可能性を否定できないし
validatesで更新されているとなればなおさらかも
>>682 のコードの周辺とか中略されているところとか独自バリデーションがあったらそれとか、$user_idとか$this->idの値とかはどうなってるの?
あと、既存のデータって、どのデータが更新されるの?
692nobodyさん:2010/09/27(月) 13:08:45 ID:???
>>658
亀レスだけど、IDが固定なら
saveField()
http://book.cakephp.org/ja/view/75/Saving-Your-Data
が使えない?
693nobodyさん:2010/09/27(月) 13:47:08 ID:???
>>691
Cake以外にDBアクセスしてる心当たりはありません。
独自バリデーションはないです。記述したisUniqueのみです。
$user_idはテーブル内でユニークな文字列(ユニークな数値をmd5したもの)
$this->idはnullです。(書き忘れたけど、自分でnullを代入して試した)
周辺のコードとはどの辺まででしょう。モデルは書いた分しかコードないです。
>>682で省略したのは$userInfoの全フィールドを書いてないことぐらいです。

>あと、既存のデータって、どのデータが更新されるの?
同じuser_idを持つレコードが、上記コードの$userInfoの内容で更新されます。つまり初期化。
あと書き間違いがあって、$this->save()は$this->save( $userInfo ) です。

もう一度問題点をまとめておくと
user_idフィールドにisUniqueを指定して、同じuser_idを持つデータの更新/挿入を阻止したいが、更新の阻止ができない。
ということです。
それがCakeの正しい動作なのかが知りたい。ネットや本によるとどうも違うようなので。
CakeのSQLダンプに出ないのも謎ですがそれはそういう不完全なものなのかな。
694nobodyさん:2010/09/27(月) 14:18:06 ID:???
>>693
モデル名はUserなの?
カラム名をuser_idじゃなくてkeyとかhashにしたらダメかな?
user_idだとUserモデルのidって解釈されるかも。
695nobodyさん:2010/09/27(月) 14:28:53 ID:???
>>694
モデル名はUserじゃないです。UserInfoとかそんな感じです。
カラム名も実際はuser_idではなくapplication_user_idです。長いので質問書く時に短くしてました。
でも一応名前変えても試してみます。ありがとう。

というかisUniqueで阻止できるのはやはり新規追加のみで、更新はされちゃうのかな?
と思ったけどやはりidをnullにしてるのに勝手にuser_idをキーに更新されるのは解せない。
696nobodyさん:2010/09/27(月) 14:31:03 ID:???
SQLダンプがでないって言う件、もしかしてDBの保存処理を行った後に
別ページにリダイレクトしてない?
697nobodyさん:2010/09/27(月) 14:32:46 ID:???
primaryKey = 'user_id' とかしてたりしてな
698nobodyさん:2010/09/27(月) 14:35:39 ID:???
もっかいその処理だけのmodelとcontroller書いて試して、だめならうpすればいいんじゃねえの?らちがあかない
699nobodyさん:2010/09/27(月) 20:04:25 ID:???
まだやってたのか

>if ( $this->save() ){
ここでなにをsaveしてるんだ?
700nobodyさん:2010/09/27(月) 22:30:00 ID:???
$this->モデル名->find('threaded');でツリー表示されますけど、
これってHTMLに出力すると起動するんですか?
foreachを再帰する為の関数を作るんでしょうか?
それとも、Cakeに出力する為のヘルパーがあるのでしょうか?
701nobodyさん:2010/09/28(火) 00:56:46 ID:???
>>700
bakery にはtree helperもあるけど、自分で再帰ヘルパー作るのもそんなに手間ではないよ。
702nobodyさん:2010/09/28(火) 13:55:58 ID:???
DB使わずにCSVのテキスト保存して
モデルとして利用する方法をどこかで見たのですが、
ググっても探せません。ご存じないでしょうか?
703nobodyさん:2010/09/28(火) 14:37:54 ID:???
704nobodyさん:2010/09/28(火) 16:36:27 ID:???
>>703
これです!ありがとうございます。
「CakePHP CSV 保存」とかで検索してました><
705nobodyさん:2010/09/28(火) 17:40:51 ID:???
>>700
それはある
詰め込み世代の新人って指示待ちか出来もしない癖に勝手な事やって迷惑掛けてくれる奴かの両極端だった
ここ数年の奴らは、意外と使える
我々にしてもそうだったけど目で盗んで憶えるというか自分の頭で考えて言われなくても的確に動けるのが増えた気がする
日本人らしさが戻って来た感じ
706nobodyさん:2010/09/28(火) 17:49:54 ID:???
ニヤニヤ
707nobodyさん:2010/09/28(火) 18:11:10 ID:???
>>705
どゆこと?
708nobodyさん:2010/09/28(火) 18:15:45 ID:???
こういう人の監視スレに入ってるって何か嫌
709nobodyさん:2010/09/28(火) 19:08:21 ID:???
>>705
なんで指示待ちしかできないんだろうな?
システム開発で言えば、エラー出てもログ見ないで「出来ません!」
って言ってくる奴大杉。

しかも「調べた」と言いつつ「どこを調べた」のか言わない。
そんなのエスパーじゃないからわかるわけ無いのにな。
自分の頭で考えないから、合理性のない行動しかできないんだよな。
710nobodyさん:2010/09/28(火) 19:22:36 ID:???
でもね、そういう人がいないと掲示板が過疎るw
711nobodyさん:2010/09/28(火) 20:13:52 ID:???
>>709
はてなとくめいだいありーにいけばどういしてくれるあくいひゃくぱーせんとのおともだちがたくさんいるよ
712nobodyさん:2010/09/28(火) 20:15:37 ID:???
>>711
ざんねんながらはてなとくめいだいありーはにちゃんよりひどいよ
713nobodyさん:2010/09/28(火) 20:30:14 ID:???
>>705
50歳以上か
714nobodyさん:2010/09/28(火) 20:37:25 ID:???
いや、30代です
715nobodyさん:2010/09/28(火) 20:49:55 ID:???
未成年じゃないのならまず誤爆を認めるところから始めないとな
716nobodyさん:2010/09/28(火) 22:11:51 ID:???
バーチャルフィールドで
「Userが購入したOrder回数を調べる」って時に使えるかと思ったのですが、
hasManyで結合させたら、paginateのソートって出来ませんよね。

hasOneやbelongsToの時に使うのかも知れませんが、
使い道があまり思い浮かばないな
717nobodyさん:2010/09/29(水) 09:13:10 ID:???
>>716
うーん。多分そういう用途じゃないよ

前者はcounterCacheという機能を使って予め親モデルに書き込んでおくようにする
バーチャルフィールドは郵便番号の上3桁と下4桁を別のフィールドで持っている場合とかに、あたかもひとつのフィールドとして扱いたい場合に使うためにある
氏名を分割していたりとか
718nobodyさん:2010/09/29(水) 09:49:52 ID:???
>>717
なるほど。と言う事は、716的な用途の場合は、
パラメーターにjoinsを指定して、直接SQLを書く方が良いですね。
719nobodyさん:2010/09/29(水) 11:46:35 ID:???
バーチャルフィールドは、日付のフォーマットとかで主に使っているな。
date_format(created,"%Y年%m月%d日") みたいな。
720nobodyさん:2010/09/29(水) 13:02:49 ID:???
それでconditionsの検索条件に含められる?
俺が試した限りでは無理だった
721nobodyさん:2010/09/29(水) 14:14:46 ID:???
いやconditionsには使ったことない。表示目的だけ。すまん。
722nobodyさん:2010/09/29(水) 14:54:21 ID:???
つかえるでしょ。
723nobodyさん:2010/09/29(水) 16:54:29 ID:???
Orderモデルに↓のバーチャルフィールドを書いて
var $virtualFields = array(
'order_num' => 'COUNT(Order.user_id)',
);

コントローラーのfindを
$params = array(
'conditions' => array('order_num' => 1),
'group' => array('User.id',),
);
$data = $this->User->find('all', $params);
print_r($data);
したんだけど、「SQL Error: 1054: Unknown column 'order_num' in 'where clause'」
ってエラーが出る。conditionsの箇所を削ると表示されるから、
conditionsで検索(where)できないと思ってるんだけど。
724nobodyさん:2010/09/29(水) 18:00:24 ID:???
いまだにページングのときのパラメータの持ち回り方のベストプラクティスがわからない。

そもそも、コロン区切りパラメータってのが、なんか気持ち悪いんだよなぁ・・・
普通にGETでいいのに。
725nobodyさん:2010/09/29(水) 18:09:44 ID:???
>>724
namedパラメータの後に?xxx=yyy 形式が俺の中ではベストかと。
まあURLがちょっとあれだけど。
paginatorで無理しなくてそのまま使えるし、
検索キーワードなどでnamedで通せないものもgetのパラメーターで通せるし。
726725:2010/09/29(水) 18:19:31 ID:???
ただ弱点はキャッシュの扱いに参ること。
Getのパラメーター部分がキャッシュのファイル名に入ってくれないからキャッシュ生成が無理。

別の話だけど、Searchプラグインなんかだと、packで文字列生成してnamedパラメーターを通すようにしてるけど
これだと本当にURLが意味不明の文字になってしまうから使いどころにはちょっと悩むね。
727724:2010/09/30(木) 05:53:30 ID:???
>>namedパラメータの後に?xxx=yyy 形式
それはさすがに気持ち悪いなぁ。

かといって、検索条件をセッションに入れちゃうと、
たとえばカテゴリ別のリンクとかが作れなくなっちゃうし・・・

あと、複数カテゴリを指定しての検索とかってよくあると思うけど、
namedは配列を扱えないらしい。
http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=1925&forum=3

うーん、悩む・・・
728nobodyさん:2010/09/30(木) 08:51:07 ID:???
Authを使ってログイン処理をしてるんだけど、
ログイン後にしばらくしたら自動でログアウト状態になるんだけど、
ブラウザのリクエストが無いとセッションが自動で切れるのって仕様?
729nobodyさん:2010/09/30(木) 08:53:03 ID:???
↑の追記だけど、core.phpのSecurity.levelをmediumにしてるけど、
やっぱり勝手に切れる。どういうことだろ?
730nobodyさん:2010/09/30(木) 10:37:41 ID:???
paginatorの迷うところは、Controller側で制御するのがデフォってところかな。
本来はModelに持たせたいなーとか。思ったりするのだけど。
731nobodyさん:2010/09/30(木) 11:21:51 ID:???
ページをコントロールする
ってのが目的だから別に良いと思うけど。
732nobodyさん:2010/09/30(木) 14:27:40 ID:???
うん。
>>730 がMVC理解してないだけ
733nobodyさん:2010/10/01(金) 02:05:57 ID:???
OSS用のシステムをCakeで作ってるんだけど、
テンプレートの修正はCakePHP方式にするかSmartyにするか延々悩んでる。
テストしてもどちらが良いか悪いか判断付かない。

Smarty編集出来るような人はPHPも使えるだろうから、
別にCakePHPのソースを編集する形でも良いのかな。
734nobodyさん:2010/10/02(土) 19:47:36 ID:???
質問です。
HTMLヘルパーでリンクを張るとき
echo $this->Html->link("あいうえお", array('action'=>'read', 'url'=>$url));
として、
http://localhost/controller/read/url:http://www.yahoo.co.jp
と出力させたいのですが、

http://localhost/controller/read/url:http:/www.yahoo.co.jp
となってしまいます。パラメータとしている値の「//」が「/」とエスケープされてるようなんですが、
どうすればいいかご存知のかたはいませんか。
735nobodyさん:2010/10/02(土) 21:33:56 ID:???
>>734
スラッシュがエスケープされてしまうなら、単純に
$url = 'http:////www.yahoo.co.jp';
と、2重に書けばいいのでは。
ただ、このままだとコントローラで
$this->passedArgs['url']
で取り出される値は、『http:』のみになってしまいます。
スラッシュは、パラメータの値として判断してくれないんです。

ですから、
$url = 'http://www.yahoo.co.jp';
echo $html->link('あいうえお', "{$this->webroot}hoge/read?url=$url");
としてはどうでしょう?
コントローラでは、
$this->params['url']['url']
で、URLを欠けることなく取り出すことができます。

もしも、URLのパラメータをページングでも保持しておきたい場合は、
url:http://www...
の形にせざるをえません。
その場合、スラッシュを別の文字に一時的に置き換える処理を独自に
作る必要があると思います。
例えば、僕はスラッシュを『~!』に変換しています。
詳しいことは下記に書いてますので、734がページングを使いたいと
思っているのなら参考にしてください。
http://d.hatena.ne.jp/sutara_lumpur/20100829/1283074357
736nobodyさん:2010/10/03(日) 04:02:29 ID:???
ちょっとマイクロブログっぽいCakePHPのオープンソースみたいだな
http://www.moongift.jp/2010/08/listter/
737nobodyさん:2010/10/03(日) 14:37:31 ID:???
ビューのelementをコントローラで取得したいのですが
どうすればいいのでしょうか?
コントローラ内で$header = $this->element('header')としても駄目でした。
738nobodyさん:2010/10/04(月) 16:30:37 ID:???
viewsで↓のようなことできますでしょうか?
example.com/index/index/

views/index-index.ctpを見る

ディレクトリで分ける方法だと管理が面倒なのでこう出来ればいいなと思いました。
ご教示お願いいたします。
739nobodyさん:2010/10/05(火) 21:20:28 ID:???
あげます
740nobodyさん:2010/10/05(火) 22:38:37 ID:???
質問はフォーラムでしたほうがいいんじゃないだろうか。
向こうの方が丁寧に答えてくれると思う。
741nobodyさん:2010/10/06(水) 07:02:07 ID:???
そうだね。sageて質問しても回答率が悪い。
742nobodyさん:2010/10/06(水) 07:19:30 ID:???
まずはチュートリアルやりましょう
743nobodyさん:2010/10/06(水) 07:28:29 ID:???
>>741
上げようが下げようがつかない質問にはつかないよ
744nobodyさん:2010/10/06(水) 07:55:36 ID:???
過去見ると、ageたら付いてるけどな
745nobodyさん:2010/10/06(水) 09:16:17 ID:??? BE:297576623-2BP(0)
>>737
MVCのV(ビュー)で使うべきelementをコントローラで使いたいというのが
そもそも間違っていると思いますよ。
プログラムの流れを見なおして、整理してみては?

>>738
質問したいことの意味がよくわかりません。
indexコントローラのindexアクションを呼び出した場合、
app/views/index/index.ctp を参照するのではなく、
app/views/index-index.ctpを参照するようにしたいということでしょうか?
無理だと思います。
おとなしくviewsフォルダの下にindexフォルダを作り、その中に
index.ctpを置くしかないと思います。

…、やっぱり質問はフォーラムに回したほうが、重複も防げていいと思う…。
http://cakephp.jp/modules/newbb/
746nobodyさん:2010/10/06(水) 10:48:31 ID:???
おまえらCakeQs使ってやれよ
http://cakeqs.org/jpn
747nobodyさん:2010/10/06(水) 13:12:41 ID:???
>>744
回答付く質問はageなくても付く
それくらいの人数のお気に入りには入ってる。ここは
質問時にage出す人がでてきたのもここ2〜3スレくらいでは?

>>745のような人がいるからこのスレはいいよね
748nobodyさん:2010/10/06(水) 14:12:36 ID:???
>>745のような人がいるから、バカがよってくるのか…
749nobodyさん:2010/10/06(水) 14:21:05 ID:???
>>748みたいのが少ないからいいね
750nobodyさん:2010/10/06(水) 14:32:22 ID:???
>>747
実際、>>739があげてるから今日はレスがだいぶ付いてるだろ。
それまでずっと閑古鳥が鳴いてたぞ
751nobodyさん:2010/10/06(水) 16:51:06 ID:???
レスがついても回答は1件しかついてないわけだが
的をはずれた質問は回答つかないことが多いな実際
752nobodyさん:2010/10/06(水) 16:55:08 ID:???
いつまでグダグダ言ってんだ
753nobodyさん:2010/10/06(水) 17:17:49 ID:???
解説はいいから見本を示せ
754nobodyさん:2010/10/06(水) 17:22:55 ID:???
何?見本って
755nobodyさん:2010/10/06(水) 17:51:45 ID:???
>>738
暇だからバカのために調べてやったぞ

http://api13.cakephp.org/view_source/view/#line-830
843行目を
$name = $this->viewPath . '-' . Inflector::underscore($name);
で可能。

大人しく、>>745の指示に従うのが賢明だと思うがな。
756nobodyさん:2010/10/06(水) 18:00:00 ID:???
ちょw結局w
757nobodyさん:2010/10/06(水) 21:59:41 ID:???
>>755
AppViewで上書きすればなんとかなるかw
758nobodyさん:2010/10/07(木) 08:49:35 ID:???
>>737
コントローラ内でrenderして変数に入れる。

$this->autoLayout = false;
$header = $this->render('header');
$this->output = "";

outputに出力内容が保存されているから、
それを初期化するのが大事。
759nobodyさん:2010/10/07(木) 08:52:35 ID:???
↑あ、間違えた。

$this->autoLayout = false;
$this->render('header');
$header = $this->output;
$this->output = "";

こうでした。renderしたら、outputに入るから、それを変数に代入するんだった。
760nobodyさん:2010/10/07(木) 14:07:00 ID:???
>>738ってindexコントローラーだったのか
そんな発想無かったから全然分からなかった

せめてもうちょっと一般的なController名にしてくださいorz
761nobodyさん:2010/10/07(木) 14:27:24 ID:???
目次の目次ってなんか変だなw
762nobodyさん:2010/10/08(金) 02:35:30 ID:???
あちこちで何度も何度も同じこと言われてるんだろうけど、
Authコンポーネントが勝手にpasswordフィールドをハッシュ化するから
validationが効きませんってのは設計ミス以外の何物でもない気がする
763nobodyさん:2010/10/08(金) 05:46:47 ID:???
>>762
そうか?別フィールドでやれば良いだけだから困ったことないな
まして設計ミスって
何度か仕様変えた結果今のに落ち着いているわけだが
764nobodyさん:2010/10/08(金) 07:27:01 ID:???
あちこちで何度も何度も言われてるだろうけど、
Authコンポーネントが勝手にセッション切れを起こすのは
設計ミス以外の何者でもない気がする。security.level変えても同じだし。
765nobodyさん:2010/10/08(金) 09:24:21 ID:???
それコンポーネントのせいじゃないし
766nobodyさん:2010/10/08(金) 10:19:03 ID:???
複数モデル(共通キーはない)をforeachで順番にfind(all)して
それをさらにforeachで1つの配列に纏めてるのだけど
これをpaginateに組み込む方法ってないですよね
prev nextが使いたいのですが
767nobodyさん:2010/10/08(金) 11:15:15 ID:???
それは無理だと思う。finはsqlのqueryを実行しているに過ぎない。
素直に自作したらどうだ?
768nobodyさん:2010/10/08(金) 14:50:51 ID:???
纏めた配列をModel化してpaginate()とpaginateCount()を実装する。
769nobodyさん:2010/10/08(金) 16:08:39 ID:???
でも、それを実装するのにqueryを渡さないと駄目だよね?
766の目的では、一旦DBから抽出したものを加工して、ってことだけど。
770nobodyさん:2010/10/08(金) 20:16:14 ID:???
>>763
「別フィールドでやる」ってバッドノウハウとしか言いようがなくね?
それで不自由があるかないかと設計の良し悪しはまるで別の要素だと思う。
771nobodyさん:2010/10/08(金) 20:46:10 ID:???
>>766=>>768なの?
paginate() paginateCount()はquery飛ばさなきゃいけないってわけでもないでしょ
772nobodyさん:2010/10/08(金) 21:13:20 ID:???
>>770
マニュアルにバッドノウハウ書いてあるとか?
暗号化されてないデータをむやみにcontrollerに渡したくないんでしょ
773nobodyさん:2010/10/08(金) 21:19:28 ID:???
フレームワークがフールプルーフである(そうあろうとする)必要はあるのかな。
それがPHPって言語の文化だろって言われたらそれまでだけど。
774nobodyさん:2010/10/08(金) 21:49:41 ID:???
>>773
フレームワークだからこそ、フールプルーフなんじゃないか?
775nobodyさん:2010/10/09(土) 14:58:31 ID:???
CakePHP辞典買ったけど、
リファレンスじゃなくて完全に関数説明だけだった・・・
776nobodyさん:2010/10/10(日) 04:22:23 ID:???
>>775
関数説明ってリファレンスに含まれるんじゃないの?
777nobodyさん:2010/10/10(日) 09:05:18 ID:???
>>776
ほとんど含まれていない。
単に「こういうクラスがあるよ。関数があるよ」っていう説明だけ。
778nobodyさん:2010/10/10(日) 11:37:36 ID:???
買う前にパラパラっとみなかったのか
779nobodyさん:2010/10/10(日) 13:40:45 ID:???
>>777がイミフなんだが解説してくれ
780nobodyさん:2010/10/10(日) 13:50:41 ID:???
何がどうイミフなのかが分からない
781nobodyさん:2010/10/10(日) 14:01:37 ID:???
>>779
逆引きリファレンスっぽいのを期待してたんじゃない?
単純に関数の説明だけならcook bookでいいじゃん!ってことかな
782nobodyさん:2010/10/10(日) 16:26:14 ID:???
- tags
id, name
- posts
id, name
- posts_tags
id, post_id, tag_id
- アソシエーション
Post hasAndBelongsToMany Tag
Tag hasAndBelongsToMany Post
PostsTag belongsTo Post
PostsTag belongsTo Tag

こんな感じのテーブルとアソシエーションで
記事(post)に複数つけられるタグ(tag)の機能を実装すると期待通りに動作します。

ここで例えばタグのうちひとつを代表タグとして扱いたいとします。
そこで以下のようなテーブル変更とアソシエーション追加を試みたのですが
アソシエーションがぶつかって(?)bakeで焼かれたままのコードでも挙動がおかしくなります。

- 変更されたposts
id, name, tag_id (代表タグ用に追加)
- 追加されたアソシエーション
Post belongsTo Tag
Tag hasMany Post

たぶん発想が良くないんだと思いますが、一般的にこのような場合、
どういうアプローチで代表タグ(複数ひもづくタグのうち一つをメインにしたい)
を実装するのがベターでしょうか。
783nobodyさん:2010/10/10(日) 17:09:24 ID:???
>>781
そう。そういうこと。
俺がこれまで買ってたリファレンス系は、だいたいその仕組みだったからさ。

あと、amazonで買ったから中身見られなかった。
こういう時に、中身検索があれば・・・
784nobodyさん:2010/10/10(日) 17:17:29 ID:???
>>782
追加するアソシエーションはPost hasOne Tagじゃないかな?
ただ、どっちにしろアソシエーションを複数指定するのは避けられないので、
main_tagsテーブル(id, post_id, tag_id)を作って、Post hasOne MainTag、MainTag belongsTo Tagにすればいいんでない?
あとはtagsテーブルにmain_tag_flagを指定するとか?
785nobodyさん:2010/10/10(日) 17:17:35 ID:???
>>782
混みいった質問は、フォーラムでするほうがいいんじゃないかな。
この場合は、『モデル』カテゴリかな…。
http://cakephp.jp/modules/newbb/viewforum.php?forum=6
786nobodyさん:2010/10/11(月) 02:33:23 ID:Gg2rGqpO
$this->paginate=array(
 'ModelA'=>array(
  'fields'=>array(・,・)),
 'ModelB'=>array(
  'fields'=>array(・,・)))

てページネーションに複数モデルセットして出しても、なんか知らないがModelBの方のfieldsが効かないんですよ。
Aは効くんだけど。
誰かご存じの方いらっしゃらない?
787nobodyさん:2010/10/11(月) 13:42:26 ID:???
>>786
$this->paginate('ModelA');
でデータ抽出してるんでしょ?
だったら、ModelA以下の設定しか使われない。

fieldの指定を、ModelA.field とか ModelB.field にしたらいいじゃないかと。
788nobodyさん:2010/10/11(月) 17:47:31 ID:???
kohanaに挫折したのですがcakephpはもっと難しいですか?
789nobodyさん:2010/10/11(月) 17:54:41 ID:???
PHPができれば誰でもできます
790nobodyさん:2010/10/11(月) 18:07:16 ID:???
フレームワーク使うとURLがねぇ・・・
http://username.example.com/ とかできるの?
791nobodyさん:2010/10/11(月) 18:16:27 ID:???
ちょっともう一回kohanaスレいって相談してきます
792nobodyさん:2010/10/11(月) 19:17:19 ID:???
すいません助けてください
Windows
PHP5.3
cakephp1.3.4

http://localhost/~cakephp/って感じでapacheにuserdirを設定したのですが
cakephpが動かないためcakephpのトップに入っているhtaccessにrewrite base /~cakephp/って設定しました
そしたら動いたんですがこれで合ってますか?
あとサブディレクトリにhtaccessが2つも入ってますがそこにもrewrite base /~cakephp/を入力して何回かアクセスしたらエラーになりました
htaccessって全部修正するのでしょうか?
793nobodyさん:2010/10/11(月) 20:01:30 ID:???
上にCakePHP: the rapid development php frameworkが表示されてて
右下にCAKEPHP POWERって画像が表示されるんですけど
自分で一から書いたHTMLを読み込ますのはどうやるのでしょうか?
794nobodyさん:2010/10/11(月) 20:08:33 ID:???
>>792-793
おまえら、参考書くらい買え
795nobodyさん:2010/10/11(月) 20:53:57 ID:???
参考書でざっくり理解したら、あとはココをちょくちょく見ながら。
http://book.cakephp.org/ja
796nobodyさん:2010/10/11(月) 20:54:30 ID:???
794さんありがとうございます
おすすめのCakePHPの本を教えてください
797793:2010/10/11(月) 21:09:47 ID:???
793です
解決できました
default.ctpっていうファイルを作ってlayoutフォルダに入れたらいいみたいでした
798nobodyさん:2010/10/11(月) 21:18:50 ID:???
>>790
サブドメインは超余裕

>>792
apacheいじれるのなら/app/webrootをルートにするんだ
ルートに置かないと後々問題出やすい

>>793
チュートリアルやれ

>>796
1.3対応書籍は不作だから公式のbookがいいぞ
どうしても本が欲しいなら、ガイドブックの1.2版がおすすめ

>>797
素晴らしい、その調子だ
799nobodyさん:2010/10/11(月) 21:27:09 ID:???
フォーラムで質問するのとここで質問するのはどっちが言いと思いますか?
800nobodyさん:2010/10/11(月) 21:30:01 ID:???
smartyならassignが出来れば他は知らなくてもいいような雰囲気あると思いますが
cakephpの場合はどれが出来るようになればいい雰囲気になれますか?
801nobodyさん:2010/10/11(月) 21:36:57 ID:???
assignだけで済むようならそもそもsmartyなんて要らないはずだ
802nobodyさん:2010/10/11(月) 21:43:31 ID:???
>>800
認証、フォーム使った入出力、モデルの読み書きとバリデーション、
複雑なSQLをModelクラスのメソッド使って組み立ててみる、
ぐらいが一通りできればあとは応用でなんとかなるような気がしないでもない。
ただ、単に「できる」のではなく内部的にどういう処理順序で
物事が進んでいくかを把握してないとダメだと思う。
フレームワークって何でもそうだと思うけど。
803nobodyさん:2010/10/11(月) 21:51:05 ID:???
分かりやすかったです
フレームワークは初めてなので頑張って覚えます
804nobodyさん:2010/10/11(月) 22:00:17 ID:Y80mjYyF
■app/controllers/hello_controller.php
class HelloController extends AppController{
var $name = 'hello';
var $uses = null;
function index(){$this->set('sample_text', 'Hello World!!');}
}

■app/views/index.ctp
<p><?php echo $sample_text ?>

入門用でHello World!!を表示できる所まで出来ました。
この場合MVCのVCしか使ってないと思うのですが、
データベースを使わない条件の時にMはどうやってファイルに書くのでしょうか?
805nobodyさん:2010/10/11(月) 22:09:17 ID:???
>>804
モデル内で
var $useTable = false;

データベースを使わないメールフォームの処理などでよくやる処理
806nobodyさん:2010/10/11(月) 22:25:25 ID:???
app/models/hello.phpを作り以下のように書きましたこんな感じでいいですかね
<?php
class hello extends AppModel
{
public $name ='hello';
public $useTable = false;

}

hello_controller.phpの$this->set('sample_text', 'サンプル');というのを↑hello.phpに書くというのは
できないのでしょうか?
ModelなのでデータをModelのファイルに書きたいと思いました。

807nobodyさん:2010/10/11(月) 22:43:34 ID:???
808nobodyさん:2010/10/11(月) 23:25:25 ID:???
おねがいぼくを一人前のケーキ職人にさせて
809nobodyさん:2010/10/11(月) 23:29:49 ID:???
CakePHPが汚いとか言われるのは何故?
810nobodyさん:2010/10/12(火) 00:07:31 ID:???
security componentには参ったな
811nobodyさん:2010/10/12(火) 02:33:30 ID:???
>>809
口のまわりがべとべとになるから
812nobodyさん:2010/10/12(火) 11:14:11 ID:???
>>795
そこリンク間違え過ぎだろ
813nobodyさん:2010/10/12(火) 11:18:49 ID:???
アフィ張ってても構わないので入門サイト作ってください
フレームワーク初心者でも分かりやすいやつをわかりや
814nobodyさん:2010/10/12(火) 13:13:16 ID:???
それこそcookbookのブログ作成で良いだろ
815nobodyさん:2010/10/12(火) 13:14:36 ID:???
ブログ興味ないしあれは難しいからダメです
816nobodyさん:2010/10/12(火) 13:28:20 ID:???
いや、あれが難しいなら何もできないだろ
PHP自体はどの程度できるの?関数とクラスはわかってる?
817nobodyさん:2010/10/12(火) 13:28:59 ID:???
PHPが分かればCakeも分かるらしいです
818nobodyさん:2010/10/12(火) 13:30:04 ID:???
書いてある通りにやればいいだけじゃん
819nobodyさん:2010/10/12(火) 13:42:53 ID:???
ブログチュートリアルが難しいと感じるレベルなら、まだフレームワーク以前の段階だよ
簡単な掲示板とか作れるくらいの最低限の知識がないと触れない

ブログチュートリアルが終わってから何すればいいのかわからないって悩みなら共感できるけどね
820nobodyさん:2010/10/12(火) 13:43:50 ID:???
掲示板作れますけどフレームワークはわかりません
821nobodyさん:2010/10/12(火) 14:37:20 ID:???
わざわざフレームワークわかろうとすることないよ
使ってみて「おっいいね」と思った時だけ使えばいい
822nobodyさん:2010/10/12(火) 14:48:17 ID:???
PHPPROで掲示板作る練習するとか
823nobodyさん:2010/10/12(火) 14:59:31 ID:???
PHPproの先生方にCakePHP講座やってもらえばいい
824nobodyさん:2010/10/12(火) 15:07:21 ID:???
ネットブックをメイン機にしてるんだが、
CookBookは文字が小さくてつらい。
で、画面を拡大すると、右側にはみ出した文字が
消えてしまう。
Firebugで原因を突き止め、

#content{
overflow: hidden;
}

#content{
overflow: visible;
}

に変えてくれるようにMark Storyさんにメールだした。
で、『I'll see what I can do about that.』と返事が来た。
でも、いまだに直っていない。
…待ってる。……ずっと…、待ってる…(つД`)
825nobodyさん:2010/10/12(火) 15:12:01 ID:???
お前良い奴だな
826nobodyさん:2010/10/13(水) 09:37:00 ID:???
あみんか
827nobodyさん:2010/10/13(水) 15:06:31 ID:???
UNIONをSQLを直接書かずにする方法ありますか
828nobodyさん:2010/10/13(水) 16:15:45 ID:???
無いです
829nobodyさん:2010/10/14(木) 20:47:39 ID:???
今日一日で簡単な会員管理システム的な物を作ったけど、
簡単すぎてどこかでバグや不具合が出ないか不安・・・
一応、今まで作ったファイルを元にしたけど
830nobodyさん:2010/10/14(木) 21:37:08 ID:???
重要なのはどれだけ簡単か(どれだけ手間をかけたか)じゃなくて、
フレームワークが勝手に余計なことをしていないかどうかだよな
831nobodyさん:2010/10/14(木) 21:40:50 ID:???
そうだな。そしてそれを判断するには、やっぱり時間と経験が必要だよな。
832nobodyさん:2010/10/15(金) 11:29:10 ID:???
質問です。
エレメントにデータを渡したいんですが、
http://book.cakephp.org/ja/view/560/Passing-Variables-into-an-Element
ここの始めにあるサンプルコードは、どのファイルに書けばいいんですか。
833nobodyさん:2010/10/15(金) 11:37:12 ID:???
>>832
エレメントを呼び出すビュー
834nobodyさん:2010/10/15(金) 12:01:21 ID:???
>>833
できました。
ありがとうございます。
835nobodyさん:2010/10/15(金) 12:56:11 ID:???
君は飲み込みがいいな
836nobodyさん:2010/10/15(金) 18:22:40 ID:???
Authを使った1回目のログインが失敗し、
更新ボタンを押して繰り返すとログイン出来る時があるのですが、
これってモデルのキャッシュ(app/tmp/cache/models)が影響してるんですかね?

beforeFilterで $this->User->create() を入れてモデルを初期化したら
今のところ、上記のような動作にならないのですが。
(モデルキャッシュを削除するのに、この方法で良いかは分かりませんが・・・
837nobodyさん:2010/10/15(金) 18:56:44 ID:???
ヘルパーの書き方って、
$html->link



$this->Html->link

どっちが推奨なのかな?

後者のほうが、変数名が衝突しなくてよさそうだけど。
838nobodyさん:2010/10/15(金) 19:47:34 ID:???
前者。
CakePHPのテンプレートの中で$htmlという変数名を見たら
10人中9人がHtml helperのことだと思う。
その変数名を別のことに使おうという発想自体いただけない。
考慮する必要もない。
839nobodyさん:2010/10/16(土) 08:41:58 ID:???
>>837
1.3は後者だね
$htmlは非推奨、互換性のため残してあるだけ
840nobodyさん:2010/10/16(土) 10:32:49 ID:???
普通に使ってたものを急に非推奨にするからウザいわー
841nobodyさん:2010/10/16(土) 10:47:47 ID:???
でも後者の方が良いな。$htmlだと変数かオブジェクトか紛らわしい
842nobodyさん:2010/10/16(土) 12:13:21 ID:???
ヘルパーだろ?紛らわしくなるほどviewが複雑になってるほうがおかしい
843nobodyさん:2010/10/17(日) 16:51:23 ID:/5W8QVHN
saveAllで3、4階層まで再帰的にsaveさせたい。
みんなどうしてる?
844nobodyさん:2010/10/17(日) 17:13:08 ID:???
3、4階層までさせない。だいたい2階層まで。
845843:2010/10/17(日) 18:22:28 ID:/5W8QVHN
saveAllは2階層までしか再帰的にでないないですよね。
(TranzactionもsaveAllの中では自動)
3,4階層はTranzactionはってsaveするしかないですよね。

>>844
なるほど、2階層までですね。
846nobodyさん:2010/10/18(月) 02:21:51 ID:???
1.2の頃は「cakeはstableを名乗っていても全然stableじゃない」なんて言われてたけど、最近はちゃんとstableなの?
847nobodyさん:2010/10/18(月) 08:30:07 ID:???
同じ1.3.4をダウンロードしたのに、時期によって中身が微妙に違ってた。
なんというかバージョンはあてにならん。
848nobodyさん:2010/10/18(月) 12:01:33 ID:???
それ、本当ならひどいな
849nobodyさん:2010/10/18(月) 13:09:32 ID:???
バージョンの意味がねえwww
850nobodyさん:2010/10/18(月) 16:26:16 ID:???
んなことあるわけねーだろ
851nobodyさん:2010/10/18(月) 16:27:39 ID:???
つか1.3.4.****
このリビジョン部分が変わってんじゃないの?
svnで管理されてるんだから気になるならリポジトリ入って見てみろよ
852nobodyさん:2010/10/18(月) 22:49:35 ID:???
viewのelement間で、共有変数を使うことは可能ですか?

例えばの話、
elementAで
i++;
elementBで
i++;
と定義しておいて、elementAを2回、elementBを1回呼んだとした場合、
iを参照して3という値を取りだしたいのです。
853852:2010/10/18(月) 22:53:25 ID:???
追記です。
案としてsession変数を使用したのですが、viewからはSessionに書き込めないとのエラーとなりました。
代替の手段ありましたらお教え頂ければと思います。
854852:2010/10/18(月) 22:59:34 ID:???
解決しました。
ヘルパー内にpublicな変数を定義しておけば、element間で共有参照できます。
ありがとうございました。
855nobodyさん:2010/10/19(火) 16:16:01 ID:???
cakeが扱えるようになるとphpの世界は変わって見えますか?
856nobodyさん:2010/10/19(火) 20:42:14 ID:???
見えない
857nobodyさん:2010/10/19(火) 21:30:04 ID:???
>>847
そんなのよくあることだよ。
写真とかも修正してあるしさ。
風俗では。
858akiyan:2010/10/20(水) 00:32:48 ID:???
いやホントに
改めて言うのも照れてしまうけれど花金明け土曜日0時なら俺は言える
「CakePHPこそフレームワークの完成形だと」

The Standard Languageの座を揺るぎないものとしたPHP
20世紀エンジニア達の知の結晶とも言うべきMVC
ここにRuby on Railsというスパイスが加わってCakeは生まれた

全くこれは何だっていうんだい 奇跡なんて陳腐なもんじゃない
おそらくはCOBOLが生まれた時点でPHPの誕生は決定済みであったろうし
Rubyは図らずもCakeの為に作られたと言っていいんじゃないか

RubistやDHH、それに20世紀を生きた全てのエンジニア達が費やした途方もない時間
それらはすべてCakeに繋がった Cakeのために彼らの汗が流された
逆じゃないんだ Cakeは結果じゃない
Cakeが始まりであって、Cakeの生誕のためにRailsがあり、Rubyがあった

20世紀を生き、そして21世紀に歩を進める全てのwebに関わるエンジニアのための心臓、それがCake
俺はCakeの時代に現役でいられたという事を誇りに思うだろう
死ぬ間際に息子と娘と孫と妻、そしてCakeの事を思うだろう

あぁCakeよCake お前は俺の中にあるし、Cake内部にも俺がいる
うまく言葉にできねぇな、とにかくCakeはもう21世紀エンジニアの魂だ

そして最後に
最愛の妻と友人、そしてペニーオークションに幸あれ
859nobodyさん:2010/10/20(水) 00:56:30 ID:???
どこのコピペでちゅか?
860nobodyさん:2010/10/20(水) 09:07:36 ID:???
オライリー本の謝辞みたい
861nobodyさん:2010/10/20(水) 11:51:56 ID:???
最近のコピペって最後にペニーオークションについて書かれていることが多いよね
862nobodyさん:2010/10/20(水) 14:17:04 ID:???
違う。ペニーオークションが好きな一人が貼りまくってるだけ
863nobodyさん:2010/10/20(水) 22:49:55 ID:???
親に感謝するのはラッパー
妻と友人に感謝するのはオライラー
864nobodyさん:2010/10/20(水) 23:25:38 ID:???
妻も友人もいないのがオマエラー
865nobodyさん:2010/10/21(木) 13:20:54 ID:???
と、と、トモダチぐらいいるよ!
866nobodyさん:2010/10/21(木) 20:28:38 ID:???
よ、よ、嫁だっているさ!
867nobodyさん:2010/10/21(木) 21:00:33 ID:???
もちろん三次元に、ですよね?
868nobodyさん:2010/10/21(木) 21:04:18 ID:???
どどどど童貞ちゃうわ
869nobodyさん:2010/10/22(金) 09:27:32 ID:???
嫁はいるのに童貞なのがお前らじゃないか
870nobodyさん:2010/10/22(金) 10:06:25 ID:???
空気嫁
871nobodyさん:2010/10/22(金) 13:21:38 ID:6ZqFCW+N
Perl、PHPなどの高額な本が、もう要らなくなりましたが、、
古本屋じゃ、買取してくれそうもない。
ゴミにするには、もったいない。
だれか欲しい人、いませんか?

http://amanda.cart.fc2.com/
872nobodyさん:2010/10/22(金) 13:47:09 ID:???
燃やして二酸化炭素にでもしろ
873nobodyさん:2010/10/22(金) 14:58:08 ID:???
精子がついてそうだからやだ
874nobodyさん:2010/10/22(金) 18:05:16 ID:???
>>871
広末の写真集とか 双葉文庫 おさな妻 (中古)とかw
875nobodyさん:2010/10/22(金) 18:10:16 ID:???
なんだその他人に譲渡すると法に触れそうな感じのタイトルは
876nobodyさん:2010/10/23(土) 10:03:30 ID:???
みなさんbakeコマンド使ってますか?
877nobodyさん:2010/10/23(土) 13:19:54 ID:???
>>876
使ってるよ
878nobodyさん:2010/10/23(土) 17:43:04 ID:???
1.3以降はfind使う分にはSQLインジェクション気にしなくていいんですか?
879nobodyさん:2010/10/24(日) 16:19:37 ID:???
CakePHPの予約語一覧てどこかにないですか?
flashというアクションが動かないけど予約語なの?
880nobodyさん:2010/10/24(日) 16:59:12 ID:???
/cake/libs/controller/controller.php
の中にflash既にあるよね
881nobodyさん:2010/10/24(日) 17:01:40 ID:???
>>880
ホントだ。こういうのいちいちソース検索しないといけないのかなあ
882nobodyさん:2010/10/24(日) 17:09:46 ID:???
ここでも読んでろよ猿
http://api.cakephp.org/classes
883nobodyさん:2010/10/24(日) 18:16:32 ID:???
チュートリアルやるとflash出てくるよね
884nobodyさん:2010/10/25(月) 00:06:25 ID:???
FastCakePHPって本最悪だなー
手抜きもいいところだし著者の曖昧な知識を隠そうとしてる節が見受けられる
CakeどころかPHPですらよくわかってないじゃんと思って著者調べてみたら評判最悪なのな
詐欺オークションに関わってるとか
金返せ つーか発禁にするべきレベル
885nobodyさん:2010/10/25(月) 10:16:06 ID:???
今頃1.1時代の本を買うアホがどこにいるんだよ
そもそも中身は技評で連載してたもののまとめだし
↓これと中身一緒でしょ?
ttp://gihyo.jp/dev/serial/01/cakephp
886nobodyさん:2010/10/25(月) 10:21:29 ID:???
当時としてはこの連載自体はそんな悪くないと思ったけど
まあ書籍にするとまた話は別だよね
887nobodyさん:2010/10/25(月) 10:48:09 ID:???
単なる妬みでしょ
相手したらいかん
888nobodyさん:2010/10/25(月) 10:50:51 ID:???
akiyanの悪口言うヤツは許さんぞ!
889nobodyさん:2010/10/25(月) 12:53:16 ID:???
1.32だが、AppControllerで
var $uses = array( 'User' );
などと指定しているモデルは、それを継承した他のコントローラでは使えないの?
子クラスの方でも同じ指定をしないと見つかりませんエラーになった。
そういうもんなの?
890nobodyさん:2010/10/25(月) 13:39:07 ID:???
そういうもんだよ。
891nobodyさん:2010/10/25(月) 15:43:32 ID:???
>>884
詐欺オークションに関わってるってどういうことだ?
ペニーオークションなら、むしろ批判記事書いてなかったっけ
892nobodyさん:2010/10/25(月) 16:19:46 ID:???
参加しただけでもある意味関わってるということになるのかもしれないね
「関わってる」という言葉はいろいろ使えて便利ですね、>>884さん
893nobodyさん:2010/10/25(月) 18:04:56 ID:???
894nobodyさん:2010/10/25(月) 18:14:20 ID:???
くそわら
895nobodyさん:2010/10/25(月) 23:56:29 ID:???
cookbookってなんでいつも重いの?
896nobodyさん:2010/10/26(火) 11:40:47 ID:???
海外にあるから
897nobodyさん:2010/10/26(火) 14:05:25 ID:???
リンクのURLミスりまくってるのも海外にあるから
898nobodyさん:2010/10/26(火) 20:45:06 ID:???
>>891
アフィ付きのマンセー記事書いてるじゃん
899nobodyさん:2010/10/26(火) 20:58:55 ID:???
めんどくさいからリンク貼ってくれ
900nobodyさん:2010/10/26(火) 22:33:47 ID:???
これだろ?
これを読んでペニーオークションに関わってる人物で、マンセーしてるようには見えないな
統合失調症か何かか?
ttp://www.akiyan.com/blog/archives/2010/09/penny-auction.html
901nobodyさん:2010/10/27(水) 01:31:31 ID:???
>定価7万の商品に対して、最終的に参加者全員が投入した合計手数料は35万
ワラタ
さすがにこれ読んでペニオク始めようと思うやつはいないだろ
902nobodyさん:2010/10/27(水) 03:10:40 ID:???
株式会社ヨセミテは事業停止したけど、塚田さんはどこに消えたんだ?
903nobodyさん:2010/10/27(水) 09:40:24 ID:???
アフィ乞食の提灯持ち必死だな
904nobodyさん:2010/10/27(水) 10:21:12 ID:???
ページネーションを始点と終点でループさせる方法を教えてください
905nobodyさん:2010/10/27(水) 10:28:49 ID:???
904 :nobodyさん :sage :2010/10/27(水) 10:21:12 ID:???
ページネーションを始点と終点でループさせる方法を教えてください
906nobodyさん:2010/10/27(水) 11:56:14 ID:???
使用するDBを動的に定義する方法はありますでしょうか?

あらかじめdatabase.phpにDBの設定をしておけば、modelのuseDbConfigを使って
接続先のDBを切り替えることができますが、あくまでも事前に設定された中からの選択です。
動的にDBの接続設定を変更したいのですが・・・。
907906:2010/10/27(水) 12:48:02 ID:???
すみません、解決しそうです。ありがとうございました。
908nobodyさん:2010/10/27(水) 12:58:36 ID:???
折角だからかけよ
909906:2010/10/27(水) 13:30:45 ID:???
ものすごい力技なのですが、libの変更で乗り切ろうかと。

ConnectionManagerのコンストラクタでdatabase.phpの
定義の読み込みが行われるので、この直後に
再定義を行う処理を追加しようと考えてます。

本当はもっとスマートにやりたかったのですが、ちょっと思いつかなかったので・・・。
910nobodyさん:2010/10/27(水) 13:35:06 ID:???
>>906
ちょっと良くわからないんだが、「事前に設定された中から」と
beforeFilterとか__constructでuseDbConfigを切り替えるのと何がどう違うんだ?
いちいちコントローラーに書くのが嫌だとか?
911906:2010/10/27(水) 13:55:22 ID:???
>>910
同じ構造のDBがユーザー単位(不定数)に存在していて、ログインユーザー別に
DBを切り替える、ということをしたいのです。
912906:2010/10/27(水) 14:04:46 ID:???
ttp://cakephp.jp/modules/newbb/viewtopic.php?topic_id=2366&forum=6&post_id=5979

まさしくやりたいことが見つかりました。
ちょっとこちらの方法を試してみます。
913nobodyさん:2010/10/27(水) 15:14:15 ID:???
>>911
それを最初に書けよw
あんたの質問が下手だから誰も回答しなかったんだな。
914nobodyさん:2010/10/27(水) 15:24:52 ID:???
まぁちゃんと解決方法をかいたのは偉い。
915nobodyさん:2010/10/27(水) 15:58:20 ID:???
偉いな、褒めてつかわす
916nobodyさん:2010/10/27(水) 16:31:16 ID:???
よきにはからえ
917nobodyさん:2010/10/27(水) 16:44:38 ID:???
あ〜れ〜〜
918nobodyさん:2010/10/27(水) 17:12:39 ID:???
俺初心者だから時々ここで質問したりROMったりしてるんだけど、最近ようやく
ここは俺みたいな奴しか見ていないことがわかってきた
919nobodyさん:2010/10/27(水) 17:17:07 ID:???
オレもオレも
920906:2010/10/27(水) 18:45:23 ID:???
>>912
で書かれているreconnectを使用する方法で切り替えられることは確認しました。
ただ、ここで一つ疑問が。
モデルのキャッシュ機能について、DBの切り替えを行った際に正常に動作するのでしょうか?
>>911で「同じ構造のDB」と書きましたが、正直言うと同じテーブル名で数カラムの差異があります。

例えば下記のような同名のテーブルが別DBに存在していたとして
DB1.table1:カラム数10
DB2.table1:カラム数11

ユーザー1がDB1.table1のデータをfind→tmp/cache/modelsにテーブル構造がキャッシュ
直後にユーザー2がDB2.table1のデータをfind→キャッシュの構造を用いてfind→1カラム足りないとエラー

ということになるんじゃないかと心配しています(検証はまだしてません)。

モデルキャッシュが具体的に何をしているのか調査してみますが、ご存知の方いましたらお教えください。
921906:2010/10/27(水) 18:49:04 ID:???
>>920
すみません、逆でした。

ユーザー2がDB2.table1のデータをfind→tmp/cache/modelsにテーブル構造がキャッシュ
直後にユーザー1がDB1.table1のデータをfind→キャッシュの構造を用いてfind→1カラム足りないとエラー
922nobodyさん:2010/10/27(水) 19:44:45 ID:???
もうウザイから答えない
923906:2010/10/27(水) 20:13:20 ID:???
すみません、解決しました。本日はありがとうございました。
ウザイようなので消えます・・・。
924nobodyさん:2010/10/27(水) 20:43:58 ID:???
自己解決してスレ汚し乙であります。
925nobodyさん:2010/10/27(水) 22:53:02 ID:???
すみません。
いまwebアプリケーションを作りたいのですが
PHP導入を考えて折ります。

PHP?っていうのがよくわからず どれをインストールしていいのかよくわかりません
fc2などのレンタルサーバで動くのでしょうか?
ダウンロードの場所など教えてくれたらありがたいです。
どなかた教えてください。
926nobodyさん:2010/10/27(水) 22:57:59 ID:???
>>925
初心者質問スレとか探したら?
927nobodyさん:2010/10/28(木) 00:16:09 ID:???
>>925
なぜCakeのスレに来た?
928nobodyさん:2010/10/28(木) 18:44:48 ID:???
コントローラが太るのを防ぐため機能をカテゴリ別になるべくコンポーネントに分けたら
var $components = array( 'aaaa', 'bbbb', ........
って所がアホみたいに長くなった。これはこれで見辛い。難しいもんだな…。
929nobodyさん:2010/10/28(木) 22:28:50 ID:???
効率化を考えてファイルを分けると余計にややこしくなるよな
930nobodyさん:2010/10/28(木) 22:36:08 ID:???
今作ってるアプリ、コントローラが100個コンポーネントが50個ぐらいある。どうなっとるんだ…
931nobodyさん:2010/10/28(木) 23:25:56 ID:???
>>930
すごいなそれ。なんのアプリなんだ。
Cakeの守備範囲の限界に近いな。というか管理が大変そうだ。
932nobodyさん:2010/10/29(金) 00:24:49 ID:???
何人で書いてるんだよ、それ
933nobodyさん:2010/10/29(金) 00:40:19 ID:???
絶対一人だな
934nobodyさん:2010/10/29(金) 00:42:11 ID:???
Model側がスカスカだったら笑えるというか笑えないな
935nobodyさん:2010/10/29(金) 00:46:36 ID:???
Amazon.co.jp: Pocket詳解 CakePHP辞典: 滝下 真玄: 本
http://www.amazon.co.jp/dp/4798027456/
これ読んだ人レビュー頼む
読んだ人いないのなら今度立ち読みしてくる
936nobodyさん:2010/10/29(金) 01:17:18 ID:???
ちょうど手元にあるよ。
今あるレビューでも触れられている通り、文字通りのリファレンスマニュアル。
内容はとにかく広く浅くで、CacheクラスやObjectクラスといった
オンラインマニュアルには記載されていないようなところまで網羅してある。
Controllerクラスのプロパティも一通り(30個ちょい)並べた表があるし。
ヘルパーの書式をいちいちマニュアルから探すのが面倒だったので
買ってみたんだが(その用途には普通に役に立ってる)、
初心者以外にはお勧めできると思った。
937nobodyさん:2010/10/29(金) 11:31:29 ID:???
search plugin使ってる人いる?
「%」を検索文字に入れるとエラーになるんだけど、対処方法教えて
938nobodyさん:2010/10/29(金) 13:23:37 ID:???
>>936
このスレの上の方で不満を書いた者だけど、
使い続ける事で、結構便利だと悟ったw

結構大きめのアプリや、それこそ”オレオレフレームワーク”
作る時も参考になると思うよ。
939nobodyさん:2010/10/29(金) 16:42:21 ID:???
オレオレフレームワークをつくるメリットが分からん。
よほど高度な技術+運用を考えられる人がいて、
スタッフの教育もできるようなら、良いかもしれないけど。
940nobodyさん:2010/10/29(金) 17:02:35 ID:???
使い道によるでしょ。
CakePHPだって最初は少人数の開発者が作った「オレオレ」だったわけだし、
ある限定された場面で簡単に利用するためにCakeをカスタムする人だっている。
スクラッチから書くのと本質的には変わらん。
利用実績やweb上のドキュメントがない(or少ない)というデメリットを
上回るメリットがあるかないかでどの選択肢を採るか決めるだけ。
941nobodyさん:2010/10/29(金) 17:02:45 ID:???
CakePHPを土台にしたフレームワークは作る必要があるなぁ。
便利だけれど、公開サーバで使うには標準だと機能がまだ足りないし。
942nobodyさん:2010/10/29(金) 18:07:13 ID:???
>>939
Cakeってよくソース見ると、自分の使い方で必要ない機能が満載だからね。
xdebugすれば分かるけど、それで処理が遅くなる事がある。

だから、小規模の・ちょっとしたシステムを作りたい時にどうしようかと思って
Cakeの書き方に慣れたから、Cakeっぽいオレオレフレームワークを作ったんだよ。
命名規則だけ参考にして、ソースはかなり簡略化してるけどね。
943nobodyさん:2010/10/29(金) 18:14:25 ID:???
ふーんどうでもいい
944nobodyさん:2010/10/29(金) 18:23:22 ID:???
一人で作ってるんだろうから別にいいんじゃない?
945nobodyさん:2010/10/29(金) 18:23:22 ID:???
>>942
Cakeのコードを削ったわけではなくて、
あくまで参考にしつつ新しく書き起こした感じ?
こういうの一度やっておくのも勉強になるかも。
946nobodyさん:2010/10/29(金) 18:26:50 ID:???
>>945
そうだよ。MVCの仕組みとか勉強になるし、
チームでやる分けじゃないから問題ないと思うよ。
947nobodyさん:2010/10/29(金) 18:32:52 ID:???
久しぶりにオレオレフレームワークくんが来てるのか
なつかしいなぁ
948nobodyさん:2010/10/29(金) 18:44:16 ID:???
なんかやたら過敏に反応するレスが多い気がするけど、
なんか自作FWに嫌な思い出がある人でもいるの?
開発期間が短いせいか、PHP界隈はとにかく
「既存のコードを継ぎ合わせて手早く作ることこそ美徳」みたいな
風潮があるような気はしてたけど。
ここまで来るとちょっとアレ。
949nobodyさん:2010/10/29(金) 18:50:22 ID:???
気にするな禿げるぞ
950nobodyさん:2010/10/29(金) 19:50:52 ID:???
>>949
もう禿かかってるわけだが。。
951nobodyさん:2010/10/29(金) 20:27:04 ID:???
頑張れ>>950の毛根
952nobodyさん:2010/10/29(金) 20:59:32 ID:???
単に別の用語出しただけで、やたらと過剰反応する奴は何がしたいんだ。
PHP使い始めていきなりフレームワーク覚えたわけじゃあるまいし。
948の言うように暗い過去とかあるんじゃねーの。
953nobodyさん:2010/10/29(金) 21:02:50 ID:???
しつこい。あわれ。すれ違い
954nobodyさん:2010/10/29(金) 21:05:34 ID:???
公開したら使ってみて評価するけど
そうじゃないなら何を話せと。あとスレチでしょうに
955nobodyさん:2010/10/29(金) 21:29:28 ID:???
そもそもオレオレフレームワークの話題になってなかったんだが。
それを突っかかっている奴がいるから荒れる
956nobodyさん:2010/10/29(金) 21:33:02 ID:???
読み返してみたけど、レスの流れでちょっと自作FWの話が出ただけじゃん。
それを「評価」とか、本当にいったいどんなトラウマ抱えてるんだよw
それとも>>954は毛根の話も等しく叩くの?
叩くんなら>>950の頭皮にしとけばいいよ。
ちょっとは血行が良くなって感謝されるかもしれない。
957nobodyさん:2010/10/29(金) 21:38:34 ID:???
つーかどうでもよくね?

けいくぴーえいちぴーだよね?
けーきぴーえいちぴーって読んでる人いる?
958nobodyさん:2010/10/30(土) 02:38:04 ID:???
え?普通後者じゃねーの?
959nobodyさん:2010/10/30(土) 02:47:55 ID:???
ケイク屋さんと言わず、ケーキ屋さんと言うよな、普通。
960nobodyさん:2010/10/30(土) 08:04:53 ID:???
おれはケイク
961nobodyさん:2010/10/30(土) 09:31:42 ID:???
欧米か!
962nobodyさん:2010/10/30(土) 10:51:26 ID:???
PHPをぴーえいちぴーと呼んでるなら
Cakeはしーえーけーいーだろ
963nobodyさん:2010/10/30(土) 11:17:12 ID:???
カッケーっす。
964nobodyさん:2010/10/30(土) 12:49:58 ID:0nJMOOka
CakePHPで最初に呼ばれるファイルは、
2回Rewriteされて、app/webroot/index.php が呼ばれると考えて良いでしょうか?
またこの時、アクセスしたファイル名はGETパラメータとして扱われると思いますが、
POSTとGETが混在しても問題ないのでしょうか?
965nobodyさん:2010/10/30(土) 13:53:38 ID:???
RoRに浮気しているのですが、CakePHPに戻ろうかと思ってきました。

Rubyは簡潔にコードが書けるのは魅力だけど、PHPのほうが何かと
簡単でとにかくWebサービスをガンガン作っていきたい自分にはCakeがいいかなと。

初心者には敷居が高かった。。。var_dump使えないし。。

リチウムはRoRを超えるポテンシャルありそうですかね。本当に期待してます。
966nobodyさん:2010/10/30(土) 15:41:45 ID:???
結構どのFWも重いんだね
安心した
967nobodyさん:2010/10/30(土) 16:40:33 ID:???
SQL DUMPしてみたらdescribeが一番時間食ってるんだけど
どうにかならないの?
968Perl忍者 ◆M5ZWRnXOj6 :2010/10/30(土) 17:50:10 ID:qrL+r3Lg
Sledge作ってる人がこういいました

「はぁ? cakePHP? なにそれクソゴミカスキエロ」
969nobodyさん:2010/10/30(土) 18:45:42 ID:???
          >>968
            ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ <こいつ最高にアホ
 彡、   |∪|  /
/ __  ヽノ /
(___)   /
970nobodyさん:2010/10/30(土) 18:51:55 ID:???
Perl忍者のブログ
http://blog.livedoor.jp/perlninja/
971nobodyさん:2010/10/30(土) 18:55:52 ID:???
自作フレームワークなら80行未満で書けたぞ
972nobodyさん:2010/10/30(土) 23:40:05 ID:???
書いてくれ
973nobodyさん:2010/10/30(土) 23:51:19 ID:???
既に60行コードが出まわってるからここには書かん
まあ60行のほうはキャッシュ付いてないが
974nobodyさん:2010/10/31(日) 00:41:38 ID:???
>>973
キャッシュつけるのに20行もかかったのかよ。
975nobodyさん:2010/10/31(日) 02:58:23 ID:???
80行未満でとかそんな自慢されてもしょっぼい実用的じゃないの作られても
フレームワークの意味がないやん
976nobodyさん:2010/10/31(日) 12:47:23 ID:???
もしかしてCakePHP一筋?
977nobodyさん:2010/10/31(日) 14:15:40 ID:???
縦スジの方が興奮する
978nobodyさん:2010/10/31(日) 14:24:56 ID:???
CakePHP縦スジ

大して興奮しないが・・
979nobodyさん:2010/10/31(日) 16:47:18 ID:???
擬人化がまだだからだ
980nobodyさん:2010/11/01(月) 09:32:25 ID:???
びっくりするぐらいCakePHPに関する話題はないな、ここ最近。
981底辺:2010/11/01(月) 09:47:43 ID:???
>>980
ないよね。俺もそう思う。
もうネットサービス自体が限界なのかな。
アフィリエイトも淘汰されたし。
982nobodyさん:2010/11/01(月) 10:10:17 ID:???
>>981
なんでそっちの方向に話が進むのかがわからんw
983nobodyさん:2010/11/01(月) 10:26:59 ID:???
質問しても誰も答えないし。
984nobodyさん:2010/11/01(月) 10:58:11 ID:???
つか、善し悪しはともかく完成はしてるだろCake。
話題が一巡したんじゃね?RoRスレもだらけてるし。
985nobodyさん:2010/11/01(月) 15:16:29 ID:???
リチウムについて語りましょう。

まだ使いがっては悪い感じですかね?
CakePHPに比べて優れているというか、どういった方向で作っているのだろうか。
986nobodyさん:2010/11/01(月) 15:34:23 ID:???
あ?スレタイも読めんのか?
987nobodyさん:2010/11/01(月) 15:56:15 ID:???
だいたい2パターンに分かれると思うんだよ。

・Cakeの機能に対する話題
・Cakeの使い方に対する話題

どちらも答えてやるから真面目な奴質問してこい
988nobodyさん:2010/11/01(月) 16:32:51 ID:???
ここで「それはPHPの使い方だろJK」的な質問が来て萎えるのがこのスレの特徴。
なぜこうも初心者ホイホイなんだろうな、Cake。
まあ、俺も4年前くらいにかなり初心者に近い状態でCakeをかじったのであまり言えない。
989nobodyさん:2010/11/01(月) 16:40:03 ID:???
初心者ホイホイで良いじゃん。例えcookbookに書いてるとしても
「cookbookに書いてあるよ」と教えれば、そいつにとって学習になる。

お前の言う上級者・玄人しか使えない・使わないシステムなんて糞だ
990nobodyさん:2010/11/01(月) 19:11:18 ID:???
>>989
cookbookレベルならまだいいんだけど、
プログラムの基礎とかhttpの基本的な仕組みとかPHPの基礎的な文法とか
そこらへんの話題の範疇が、
Symfony / ZendFW ではなくCakeに圧倒的に多い、気がする。
991nobodyさん:2010/11/01(月) 19:14:24 ID:???
なんの問題もないな
992nobodyさん:2010/11/01(月) 19:16:30 ID:???
「php」でスレタイ検索してphpの質問してくるアホがいる
993nobodyさん:2010/11/01(月) 19:17:50 ID:???
CakeはすべてのレベルのPHPerが使えるフレームワークと謳っているので、仕方がないのですよ
994nobodyさん:2010/11/01(月) 19:57:14 ID:???
だな
初心者ウェルカムで、これに慣れて物足りなくなったら他へどうぞだな
995nobodyさん:2010/11/01(月) 19:57:17 ID:???
賢いやつばっかりで話してもおもしろくないしな
996nobodyさん:2010/11/01(月) 20:00:27 ID:???
物足りなくなったらどこへ行くんだよ
997nobodyさん:2010/11/01(月) 20:09:27 ID:???
それこそ「自分で解決する」で良いんじゃないか。
物足りないって判断が出来る奴は。
998nobodyさん:2010/11/01(月) 20:20:46 ID:???
流し排水口のゴミ取りの金属製のかごのヌメリがなかなか取れません。
どうしたら良いでしょうか
999nobodyさん:2010/11/01(月) 20:24:38 ID:???
999ゲトー
1000nobodyさん:2010/11/01(月) 20:27:30 ID:???
1000ゲッツ
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。