トップページphp
1001コメント304KB

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

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん2010/07/23(金) 09:13:26ID:v3m09M9u
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
0002nobodyさん2010/07/23(金) 09:13:53ID:???
■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/
0003nobodyさん2010/07/23(金) 09:14:23ID:???
■過去スレ
【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/
0004nobodyさん2010/07/23(金) 09:14:51ID:???
■関連スレ

【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/
0005nobodyさん2010/07/23(金) 09:15:00ID:???
■その他いろいろ
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
0006nobodyさん2010/07/23(金) 09:15:34ID:???
■関連書籍
・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
0007nobodyさん2010/07/23(金) 09:16:23ID:???
テンプレらしきものは以上(>>1-6 ひとつ増えちゃった)
補足があればどうぞ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ま、整数のみ許可するとかもう少し処理入れるべきだろうが。
0043nobodyさん2010/07/25(日) 21:03:34ID:???
なにそのうんこソース
0044nobodyさん2010/07/25(日) 21:04:58ID:???
$page = empty($_GET['page']) ? 1 : $_GET['page'];
0045nobodyさん2010/07/25(日) 21:05:59ID:???
えーーくせれんっ!!
0046nobodyさん2010/07/25(日) 21:33:12ID:???
namedで来るのはそのまま使って後ろに ?query=eroero とか付ければいいだけじゃ。
0047nobodyさん2010/07/25(日) 21:44:55ID:???
>>46
そんな気持ち悪いURLいやだろ
0048nobodyさん2010/07/25(日) 23:54:46ID:???
もう、Cake使うのやめて、必要な部分だけオレオレに移植しろよ。
0049nobodyさん2010/07/26(月) 01:51:25ID: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に入れて分けるしかないのでしょうか?
0050nobodyさん2010/07/26(月) 02:21:11ID:???
問題を切り分けろバカ


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

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

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

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

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

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

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

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

みな調子いいなぁ・・・w
0076nobodyさん2010/07/27(火) 21:43:58ID:???
俺も最初からわかっててあえて・・・な
0077nobodyさん2010/07/29(木) 03:48:26ID:8543E4o9
Ruby on Railsで10分で作るTwitterもどき
http://japan.zdnet.com/video/screencast/story/0,3800079413,20354695,00.htm
http://www.asahi.com/ai/cp27863.edgefcs.net/screencasts/toytter.zip
http://japan.zdnet.com/blog/yoshimi/2007/10/01/entry_27016431/
http://japan.zdnet.com/blog/yoshimi/2007/10/10/entry_27016432/
http://japan.zdnet.com/blog/yoshimi/2007/10/12/entry_27016433/
http://japan.zdnet.com/blog/yoshimi/2007/10/22/entry_27016434/
http://japan.zdnet.com/blog/yoshimi/2007/11/14/entry_27016435/
http://japan.zdnet.com/blog/yoshimi/2007/11/17/entry_27016436/
http://japan.zdnet.com/blog/yoshimi/2007/11/22/entry_27016437/
http://japan.zdnet.com/blog/yoshimi/2007/11/29/entry_27016438/
http://japan.zdnet.com/blog/yoshimi/2007/12/08/entry_27016439/

toytter-2.0
http://japan.zdnet.com/blog/yoshimi/2008/02/05/entry_27016446/

TwitterAPIをActiveResourceで
http://japan.zdnet.com/blog/yoshimi/2008/02/18/entry_27016448/
script/consoleから
> Twitter::Status.post(:update, :status => "activeresource test")
ってやるだけで、Twitterに投稿できる。

これでtoytter内で発言すると、twitterにも同じ内容が投稿されるようになりました。
0078nobodyさん2010/07/29(木) 15:34:05ID:???
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のような処理を簡単にしたいです。
0079nobodyさん2010/07/29(木) 15:43:01ID:???
>>78
その例ならアソシエーション使わない理由が分からない
例を無視して応えるならfind('list')で取得してarray_keysかな?
0080 [―{}@{}@{}-] nobodyさん2010/07/30(金) 02:07:24ID:???
デジタル工房です
只今オープン価格中
http://gekiyasu.issekinicho.com

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

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

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

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

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

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

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

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

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

他にこのエラーの回避方法などありますでしょうか?
0101nobodyさん2010/08/02(月) 13:51:18ID: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;
}
0102nobodyさん2010/08/02(月) 14:03:00ID:???
>>101
次からsageてくれないか?
0103nobodyさん2010/08/02(月) 14:05:01ID:???
>>100
http://book.cakephp.org/ja/view/1018/find
のソースをよーく見てね
01041002010/08/02(月) 14:10:02ID:???
>>103
ありがとうございました。
conditionsの指定はカラム名だけでOKなものと思い込んでいました。。。
モデル名の付与がそもそも正しいんですね。
0105nobodyさん2010/08/02(月) 14:36:00ID:???
>>101
validateData()内で
dump($field);
するとどうなるの
0106nobodyさん2010/08/02(月) 14:39:32ID:???
なるほど。
yearだけ入力されて送信されても、ほかが空っぽだと、何も入ってないってこと?
$this->data[$this->name]['year']じゃなくて
$this->data[$this->name]とかにYYYY-MM-DDな感じに加工されたテキストで入ってなかったっけ?
0107nobodyさん2010/08/02(月) 14:54:10ID:???
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になっちゃうんです
0108nobodyさん2010/08/02(月) 22:28:51ID:???
>>100
エラーメッセージ読もうよ。。。
「Column 'xxx' in where clause is ambiguous」
0109Beginner2010/08/02(月) 22:44:27ID:???
只今、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になっています。
0110Beginner2010/08/02(月) 22:45:34ID:???
続きです

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 カスタムしたクエリによるページ付け
0111nobodyさん2010/08/03(火) 00:28:24ID:???
>>110
paginateの条件指定の周りはどう書いてるの?
$this->paginate('Response')
でいけると思うんだけど。
0112nobodyさん2010/08/03(火) 03:16:32ID:???
>>108
質問の意味を理解しな
0113nobodyさん2010/08/04(水) 11:55:21ID:???
講師がいきなりガンダムの話しをしてきた・・・
http://jbbs.livedoor.jp/bbs/read.cgi/internet/6235/1265358917/
0114nobodyさん2010/08/04(水) 23:13:48ID:???
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パラメーター扱いにしてるから
+がスペースと同じになっちゃうと思うんだけど・・・

とりあえず二重エンコードで回避してみたけど、あまりいい手段とも思えない。
何か他に回避策はないかな?
0115nobodyさん2010/08/04(水) 23:18:29ID:???
>>114に書き忘れたけど+を一回エンコードして/hoge%2Bfugaにしてもダメだった。
二回エンコードすると+がそのままパラメーターとして渡る
0116nobodyさん2010/08/04(水) 23:37:01ID:???
英文だけど、ちょっと情報があるね
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
0117nobodyさん2010/08/05(木) 02:26:48ID:???
これってフロントコントローラのFWなら仕方ないことなの?
symfonyとかrailsはどうなってるんだろう・・・?
0118nobodyさん2010/08/05(木) 03:16:57ID:???
http://www.cpa-lab.com/tech/03
http://d.hatena.ne.jp/ruby-U/20090618/1245332725
このあたりのhtaccessのmod_rewriteで勝手にパラメーターがデコードされてるのが原因なのかな
0119nobodyさん2010/08/05(木) 03:30:02ID:???
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が得られるはずなんだよな
一回余計にデコードされてる
0120118,1192010/08/05(木) 16:02:35ID: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
0121nobodyさん2010/08/05(木) 16:07:11ID:???
途中で送信してしまった

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

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

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

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

でも、それがlinuxではエラーが出ないって保証にはならんでしょ?
原因が特定されないと気持ち悪い
0132nobodyさん2010/08/09(月) 01:21:50ID:???
>>131
出てないなら気にスンナ!
linuxでエラー出るなら、誰かから報告あがってるでしょ
0133nobodyさん2010/08/09(月) 04:02:03ID:???
formHelperのinputでtypeに値設定しているとmaxlengthを取得してくれないってバグを誰か英語で報告してくれないかな?
0134nobodyさん2010/08/11(水) 23:32:47ID:???
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エラーが出てしまいます
0135nobodyさん2010/08/12(木) 09:45:53ID:???
>>134
よめ
http://book.cakephp.org/ja/view/1608/Virtual-fields
0136nobodyさん2010/08/12(木) 10:21:52ID:???
cakeのデフォルトファイルって減らせないかな?
うちで使っている糞鯖にファイルアップするだけでも、だいぶ時間がかかる
0137nobodyさん2010/08/12(木) 13:25:48ID:???
>>135
ありがとうございます
virtualFields設定してgroupしたら、期待通りの結果が得られました
0138nobodyさん2010/08/12(木) 14:49:01ID:???
>>136
フォークして、自前でカスタマイズする。
もしくは、もうやっているとともうけど、lnしてひとつにまとめておく…とか。
0139nobodyさん2010/08/13(金) 00:02:04ID:???
>136
固めてあげろ
0140nobodyさん2010/08/13(金) 05:51:38ID:tji6Fsyn
携帯サイトを作っていて、1ソース3キャリア対応にしたいので
配布されている絵文字のライブラリを使おうと思っています。

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

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

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

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

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

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

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

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

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

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

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

だからなめられんだよクソwwwwwwwwwwwwwwwwwwwwww
0174nobodyさん2010/08/14(土) 00:23:57ID:???
Perlerが威張るってww
PHPerって半数くらいはPerlもできるだろ
0175nobodyさん2010/08/14(土) 01:17:12ID:???
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階層目までのデータは取得できています。
0176nobodyさん2010/08/14(土) 01:36:15ID:???
できるはすだよ
条件指定してない時には正しくデータがとれてると言うことは
アソシエーション自体は正しいから、conditionsが間違ってるっぽいな
発行したSQL文かconditionsの内容書いてみ
01771752010/08/14(土) 02:04:35ID:???
条件指定なしの場合の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))))
01781752010/08/14(土) 02:06:46ID:???
SQL文が5回発行されていました。
多階層のJOIN文を作成して1度でデータを取得していると思っていたのですが、
1階層目までしかJOINせず、その先は個別にデータを取得してるみたいです。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ってなるはずだから自分でどっか弄ったんだろ?
Cakeのバグじゃなさそうだから、自分でコード追って解決しろよ
0197nobodyさん2010/08/18(水) 11:21:26ID:???
>>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は反映されませんでした。
0198nobodyさん2010/08/18(水) 11:58:04ID:???
>>197
このへん
http://cakephp.jp/modules/newbb/viewtopic.php?viewmode=thread&topic_id=272&forum=2&post_id=787
0199nobodyさん2010/08/18(水) 12:25:14ID:???
外部CSSとかJavascriptをCakeの昨日使わなくても
bootstrap.phpに定数書いて参照させる方が確実だぞ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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


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

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

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

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

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

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


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

痛いっすね!!!

マジパネーッス!!

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

1.2系もまだメンテ続けるのね
0234Perl仙人 ◆M5ZWRnXOj6 2010/08/23(月) 23:45:48ID: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未満(笑)


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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

っていわれて50万貰いました
0261Perl忍者 ◆M5ZWRnXOj6 2010/08/24(火) 19:58:23ID:jwes9+en
259のPerlを有名にさせる作戦は終りました
0262nobodyさん2010/08/24(火) 20:05:45ID:???
ただのコピペとかメインの荒らしと思いきや
全部書いてるんだ。こいつマジでビョーキだろ
うわああああ
0263nobodyさん2010/08/24(火) 20:45:05ID:???
怖いよね
0264Perl忍者 ◆M5ZWRnXOj6 2010/08/24(火) 21:07:34ID:jwes9+en
っと3キモ言語の下っ端がわめいています
0265nobodyさん2010/08/25(水) 14:33:29ID:???
ワロタ
早くこいつを捕まえないとそのうち人殺すぞ
02662412010/08/25(水) 21:46:12ID:???
今日「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切り分けないのはちょっと・・・
02672412010/08/25(水) 21:57:16ID:???
誤植
・P53 3行目]閉じ忘れ
・P65,P71, 修正されているはずの、<?= が<?php echo になってない

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

という感じで、細かい突っ込みどころもあるけど、なんだか不安になる内容だった
>>241のレビューでも誤植が多いと突っ込まれていたけど、コードレビュアーとかいないのかな?
0268nobodyさん2010/08/25(水) 22:01:18ID:???
>>266
宣伝乙とか言われてたけど、色々と酷いなw
0269nobodyさん2010/08/25(水) 22:03:14ID:???
ひでーな読みたくねーわ
0270nobodyさん2010/08/25(水) 22:11:24ID:???
>>267
個人的には後者のコードの方が好きだけどな
もっとも、自分で書くなら
<? php
echo $a.'<br />'.$b;
?>
ってな感じにするけど。
02712702010/08/25(水) 22:13:12ID:???
地味に間違えてるわorz
0272nobodyさん2010/08/25(水) 22:26:25ID:???
最後まで読めばいいんじゃねとりあえず
そんな俺は買ったけどまだ読んでないw
02732412010/08/26(木) 00:42:52ID:???
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説明サイトを思い出しました
02742412010/08/26(木) 00:45:18ID:???
・変なバリデーション
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


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

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


真似しかできないwwwwwww

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

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

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

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

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


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


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

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

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

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

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

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

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

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

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

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

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

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

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

その場合はやっぱり$paginator->sort('ID', 'User.id');こうなるんじゃないか?
03062992010/08/27(金) 16:24:42ID:???
それならやっぱりURLはsort:tourokujunとかにして、beforeFilterでparams['named']['sort']を見て
tourokujunだったらUser.idに書き換えるとか
03073052010/08/27(金) 16:56:58ID:???
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
03082992010/08/27(金) 17:45:25ID:???
paginatorが見てるところが違ったな、$this->paramsじゃなくて$this->passedArgsだった

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

これで動いた

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

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

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

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

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

APIとしては、EstraierPureをapp/vendors配演コに設置しましbス。
しかbオ、以下をどうbキればよいか分bゥらず、止まっbトいる状態です=B

(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
0326nobodyさん2010/08/30(月) 05:34:09ID:???
Hyperestraier以前の問題やん
0327nobodyさん2010/08/30(月) 21:41:40ID:???
なぜbeta使うの?安定版があるのに。
03283252010/08/31(火) 00:39:58ID:???
>>327
03293252010/08/31(火) 00:42:33ID:???
途中で投稿してしまいました。失礼しました。

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

あれから、HyperestraierのDBとノードを混同しているらしい事に気づきました。
とりあえず別途、Hyperestraierのノードを起動してから試してみようと思います。
0330nobodyさん2010/08/31(火) 19:00:53ID:???
CakePHP面白そうだなぁ、なんかスゴそうだなぁ
0331Perl忍者 ◆M5ZWRnXOj6 2010/08/31(火) 21:18:35ID: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`ー..._    ,.. -'´/      |:.:.:.:.:.:.:.:.:.:.:.:.:.:.

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

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

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

そっからかよw
0365nobodyさん2010/09/05(日) 01:42:24ID:???
秀丸てw
せめてphpshotのPHPエディタだろw
0366nobodyさん2010/09/05(日) 03:15:36ID:???
秀丸w
0367nobodyさん2010/09/05(日) 15:21:03ID:???
秀丸の何がおかしい!
0368nobodyさん2010/09/05(日) 16:09:00ID:???
秀丸に金払うんだよなもちろん
0369nobodyさん2010/09/05(日) 18:13:52ID:???
秀丸はないわ
0370nobodyさん2010/09/05(日) 18:23:30ID:???
彼氏が秀丸でコード書いてたら別れるレベル
0371nobodyさん2010/09/05(日) 18:49:40ID:???
秀丸で書いてもいいんだけど
ちゃんと金払ってマクロ使いこなしてじゃないと
秀丸で書く意味ないだろ
0372nobodyさん2010/09/05(日) 18:56:17ID:???
terapadじゃ駄目なの?
0373nobodyさん2010/09/05(日) 19:40:10ID:???
notepad++がいい
0374nobodyさん2010/09/06(月) 00:33:55ID:???
禿丸
0375nobodyさん2010/09/06(月) 01:59:52ID: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']);
}
}
0376nobodyさん2010/09/06(月) 15:00:11ID:???
スレ違いだったらすみません。
yiiを見ているのですが、下のソースはどういう意味でしょうか?

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ありがとうございます。

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

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

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

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

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

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

0454nobodyさん2010/09/08(水) 14:30:26ID:???
荒らしてるのは一人だろ
0455nobodyさん2010/09/08(水) 16:14:15ID:???
だな
0456nobodyさん2010/09/08(水) 16:37:51ID:???
うざいとか荒らしとか言って人の意見聞かなけりゃいから成長しないんだよ。
0457nobodyさん2010/09/08(水) 16:40:32ID:???
定数定義君(笑)がでてきたあたりから回答がひどいことになってるよね
中途半端な知識で人に教えないほうがいいとおもうけどなー
0458nobodyさん2010/09/08(水) 17:18:50ID:+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;
}
}
0459nobodyさん2010/09/08(水) 17:22:28ID:???
return true; してないとか。
0460nobodyさん2010/09/08(水) 17:39:15ID:???
>>458
$this->findById()
0461nobodyさん2010/09/08(水) 17:51:58ID:???
>>457
回答も回答だが、質問も458みたいに酷いしな
オープンソースなんだからソース読んで自力で解決しろよと思う
0462nobodyさん2010/09/08(水) 18:00:27ID:???
>>461
どう酷いのか言わないと同じことの繰り返しだよ
04634582010/09/08(水) 18:12:16ID:???
>>459
return trueが抜けてました・・。酷い質問で済みませんでした。
0464nobodyさん2010/09/08(水) 18:12:31ID:???
>>462
>オープンソースなんだからソース読んで自力で解決しろよと思う

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

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

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

>>463
勉強する気があるならmodel.phpのinvalidFieldsの中を読んでみ
0467nobodyさん2010/09/08(水) 18:29:06ID:???
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]
0468nobodyさん2010/09/08(水) 18:29:42ID:???
オープンソースは自力で問題を解決する物φ( ̄ー ̄ )メモメモ
0469nobodyさん2010/09/08(水) 18:30:42ID:???
>>467
461さんの一存でこのスレで質問は受け付けられません。お帰り下さい。
0470nobodyさん2010/09/08(水) 18:33:02ID:???
>>467
findAllはfind('all')になった、詳しくはググれ
04714612010/09/08(水) 18:33:57ID:???
>>468
理想を言えばマニュアルやAPI見るだけで理解できればいいんだけどね。
0472nobodyさん2010/09/08(水) 18:38:27ID:???
どこのスレでも461みたいな奴っているな
嫌なら答えなければいいのに。なにかお前に対して迷惑かかるのかよ
0473nobodyさん2010/09/08(水) 18:43:02ID:???
find('all')に変更して事故解決しました
0474nobodyさん2010/09/08(水) 20:04:42ID:???
>>473
質問のタイミングが悪かったねw
0475nobodyさん2010/09/08(水) 20:24:25ID:???
オープンソースのスレはもう必要なさそうだな
0476nobodyさん2010/09/08(水) 22:09:02ID:???
>>472
458のためを思って言ってるんだけどね。
あのくらいの問題を自分で解決できないんじゃ、いつまでたっても成長しないだろ?
04774702010/09/08(水) 22:09:49ID:???
>>473
俺のおかげで解決って言えええええええ!
0478nobodyさん2010/09/08(水) 23:46:57ID:???
>>477
あなたのおかげで解決しました
0479nobodyさん2010/09/09(木) 02:03:12ID:???
お礼強要すんなw
0480nobodyさん2010/09/09(木) 02:05:46ID:???
お礼は3行以上でお願いします。
0481nobodyさん2010/09/09(木) 02:56:55ID:???
さらに増やすなw
0482nobodyさん2010/09/09(木) 03:00:37ID:???
お礼は千行以上でお願いします。
0483nobodyさん2010/09/09(木) 10:33:38ID:???
マニュアルのわかりやすいとこに答えが載ってるような質問もどうかと思うけどな
しかも回答貰ってんのに自己解決とかいっちゃってるし
0484nobodyさん2010/09/09(木) 10:41:38ID:???
なりすましで荒らす奴がいるから質問はID出すのが普通じゃね
0485nobodyさん2010/09/09(木) 11:27:23ID:???
文句や煽りレスをするよりわかるなら教えてやれば良いのにっていつも思う。
自分が知ってて簡単に答えられそうで、尚かつめんどくさくないなら。
面倒な奴は無視すれば良いんだよ。

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

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

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

ってなってるから無理

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

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

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

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

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

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

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

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

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

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

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


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


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

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

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

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


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

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

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

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

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

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

$this->thisMonth = date(m);

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

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

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

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

public function getDate(){

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

public function showDate(){

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

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

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

と思ったら

2.0系もでんのか??

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

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

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

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

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

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

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

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

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

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

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

>>604
それだとCakeを使う意味がない気がします。
0606nobodyさん2010/09/16(木) 06:55:26ID:???
>>602
最近CakePHP触ってないからうろ覚えなんだけど、
controller.phpにbeforeFilterを定義して、携帯からのアクセスか
PCからのアクセスかを判別する処理をそこに書く。
その中でコントローラを割り振るようにできるんじゃないかな?
確かコントローラ名が$thisに入ってたよね
0607nobodyさん2010/09/16(木) 07:11:12ID:???
>>605
Ktai Library 使いましょう
0608nobodyさん2010/09/16(木) 09:33:19ID:???
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で書いたほうがいいのかなあと。
0609nobodyさん2010/09/16(木) 14:56:55ID:???
>>602
beforFilterあたりでIPかUAを見てprefixつけられなかったっけ
と思ったら>>606が同じようなこと書いていたな

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

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

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

便利そうなんだが、ライブラリ依存しないCakePHPのプラグインがライブラリ依存してるというのも皮肉な話だな
0622nobodyさん2010/09/17(金) 19:23:15ID:???
×依存
○利用
0623nobodyさん2010/09/17(金) 21:12:29ID:???
ま、使える物は便利に使わせてもらうぜ。先人達のご厚意だ。
0624nobodyさん2010/09/20(月) 01:01:46ID:???
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)みたいにして
ビューに渡す必要はないですよね?
0625nobodyさん2010/09/20(月) 01:23:29ID:???
↑の自己レスです。
ログイン情報を記述しているapp_controllerにヘルパーを指定してるのですが、
そこにSessionを指定しないとエラーが出るみたいです。
0626nobodyさん2010/09/20(月) 05:35:42ID:???
>>625
自分で言っているとおり、Sessionヘルパーを使うことを
宣言する必要があると思いますよ。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

>>673
>Modelでpaginate()とpaginateCount()を実装する。
本当はこれやりたかったんですが、簡単なほうを選んで
自前ページャーで作ってしまいました、次回はこれ使います!
教えて頂きありがとうございました。
0679nobodyさん2010/09/25(土) 05:06:39ID:???
>>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ですが、何か最近変わったりしたんでしょうか。
0680nobodyさん2010/09/25(土) 05:10:47ID:???
すんません>>679はミスでした
寝ます
0681nobodyさん2010/09/25(土) 05:10:51ID:???
1.3使ってないけど、実行してるSQLがまさにそこに表示されてるんだから
解決するのはそんなに難しくないような気がする
0682nobodyさん2010/09/25(土) 06:24:18ID:???
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');

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

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

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

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

ちなみに自分でif ( $this->validates($userInfo)
とかやって駄目な時はsaveしないようにしても更新されちゃいます。
0687nobodyさん2010/09/26(日) 09:19:40ID:???
説明も不十分だし、全部どっかうpしたほうがいいんじゃねえの?みてもらえるかは別として。
0688nobodyさん2010/09/26(日) 13:07:37ID:???
どの辺が不十分ですか?
0689nobodyさん2010/09/26(日) 19:05:33ID:???
スレが止まるほどの難問なのか
0690nobodyさん2010/09/27(月) 01:59:38ID:???
>>653
その理屈は結構前の話しだな。
今はフレームワークも便利な機能てんこもりで、
独りで作るのにも利用しないと大幅に差が出る。
0691nobodyさん2010/09/27(月) 09:51:39ID:???
>>688
横からだけど
CakePHPのダンプに出てないということは、CakePHPのsave()以外が更新している可能性を否定できないし
validatesで更新されているとなればなおさらかも
>>682 のコードの周辺とか中略されているところとか独自バリデーションがあったらそれとか、$user_idとか$this->idの値とかはどうなってるの?
あと、既存のデータって、どのデータが更新されるの?
0692nobodyさん2010/09/27(月) 13:08:45ID:???
>>658
亀レスだけど、IDが固定なら
saveField()
http://book.cakephp.org/ja/view/75/Saving-Your-Data
が使えない?
0693nobodyさん2010/09/27(月) 13:47:08ID:???
>>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ダンプに出ないのも謎ですがそれはそういう不完全なものなのかな。
0694nobodyさん2010/09/27(月) 14:18:06ID:???
>>693
モデル名はUserなの?
カラム名をuser_idじゃなくてkeyとかhashにしたらダメかな?
user_idだとUserモデルのidって解釈されるかも。
0695nobodyさん2010/09/27(月) 14:28:53ID:???
>>694
モデル名はUserじゃないです。UserInfoとかそんな感じです。
カラム名も実際はuser_idではなくapplication_user_idです。長いので質問書く時に短くしてました。
でも一応名前変えても試してみます。ありがとう。

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

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

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

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

前者はcounterCacheという機能を使って予め親モデルに書き込んでおくようにする
バーチャルフィールドは郵便番号の上3桁と下4桁を別のフィールドで持っている場合とかに、あたかもひとつのフィールドとして扱いたい場合に使うためにある
氏名を分割していたりとか
0718nobodyさん2010/09/29(水) 09:49:52ID:???
>>717
なるほど。と言う事は、716的な用途の場合は、
パラメーターにjoinsを指定して、直接SQLを書く方が良いですね。
0719nobodyさん2010/09/29(水) 11:46:35ID:???
バーチャルフィールドは、日付のフォーマットとかで主に使っているな。
date_format(created,"%Y年%m月%d日") みたいな。
0720nobodyさん2010/09/29(水) 13:02:49ID:???
それでconditionsの検索条件に含められる?
俺が試した限りでは無理だった
0721nobodyさん2010/09/29(水) 14:14:46ID:???
いやconditionsには使ったことない。表示目的だけ。すまん。
0722nobodyさん2010/09/29(水) 14:54:21ID:???
つかえるでしょ。
0723nobodyさん2010/09/29(水) 16:54:29ID:???
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)できないと思ってるんだけど。
0724nobodyさん2010/09/29(水) 18:00:24ID:???
いまだにページングのときのパラメータの持ち回り方のベストプラクティスがわからない。

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

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

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

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

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

Smarty編集出来るような人はPHPも使えるだろうから、
別にCakePHPのソースを編集する形でも良いのかな。
0734nobodyさん2010/10/02(土) 19:47:36ID:???
質問です。
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
となってしまいます。パラメータとしている値の「//」が「/」とエスケープされてるようなんですが、
どうすればいいかご存知のかたはいませんか。
0735nobodyさん2010/10/02(土) 21:33:56ID:???
>>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
0736nobodyさん2010/10/03(日) 04:02:29ID:???
ちょっとマイクロブログっぽいCakePHPのオープンソースみたいだな
http://www.moongift.jp/2010/08/listter/
0737nobodyさん2010/10/03(日) 14:37:31ID:???
ビューのelementをコントローラで取得したいのですが
どうすればいいのでしょうか?
コントローラ内で$header = $this->element('header')としても駄目でした。
0738nobodyさん2010/10/04(月) 16:30:37ID:???
viewsで↓のようなことできますでしょうか?
example.com/index/index/

views/index-index.ctpを見る

ディレクトリで分ける方法だと管理が面倒なのでこう出来ればいいなと思いました。
ご教示お願いいたします。
0739nobodyさん2010/10/05(火) 21:20:28ID:???
あげます
0740nobodyさん2010/10/05(火) 22:38:37ID:???
質問はフォーラムでしたほうがいいんじゃないだろうか。
向こうの方が丁寧に答えてくれると思う。
0741nobodyさん2010/10/06(水) 07:02:07ID:???
そうだね。sageて質問しても回答率が悪い。
0742nobodyさん2010/10/06(水) 07:19:30ID:???
まずはチュートリアルやりましょう
0743nobodyさん2010/10/06(水) 07:28:29ID:???
>>741
上げようが下げようがつかない質問にはつかないよ
0744nobodyさん2010/10/06(水) 07:55:36ID:???
過去見ると、ageたら付いてるけどな
0745nobodyさん2010/10/06(水) 09:16:17ID:????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/
0746nobodyさん2010/10/06(水) 10:48:31ID:???
おまえらCakeQs使ってやれよ
http://cakeqs.org/jpn
0747nobodyさん2010/10/06(水) 13:12:41ID:???
>>744
回答付く質問はageなくても付く
それくらいの人数のお気に入りには入ってる。ここは
質問時にage出す人がでてきたのもここ2〜3スレくらいでは?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

>>797
素晴らしい、その調子だ
0799nobodyさん2010/10/11(月) 21:27:09ID:???
フォーラムで質問するのとここで質問するのはどっちが言いと思いますか?
0800nobodyさん2010/10/11(月) 21:30:01ID:???
smartyならassignが出来れば他は知らなくてもいいような雰囲気あると思いますが
cakephpの場合はどれが出来るようになればいい雰囲気になれますか?
0801nobodyさん2010/10/11(月) 21:36:57ID:???
assignだけで済むようならそもそもsmartyなんて要らないはずだ
0802nobodyさん2010/10/11(月) 21:43:31ID:???
>>800
認証、フォーム使った入出力、モデルの読み書きとバリデーション、
複雑なSQLをModelクラスのメソッド使って組み立ててみる、
ぐらいが一通りできればあとは応用でなんとかなるような気がしないでもない。
ただ、単に「できる」のではなく内部的にどういう処理順序で
物事が進んでいくかを把握してないとダメだと思う。
フレームワークって何でもそうだと思うけど。
0803nobodyさん2010/10/11(月) 21:51:05ID:???
分かりやすかったです
フレームワークは初めてなので頑張って覚えます
0804nobodyさん2010/10/11(月) 22:00:17ID: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はどうやってファイルに書くのでしょうか?
0805nobodyさん2010/10/11(月) 22:09:17ID:???
>>804
モデル内で
var $useTable = false;

データベースを使わないメールフォームの処理などでよくやる処理
0806nobodyさん2010/10/11(月) 22:25:25ID:???
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のファイルに書きたいと思いました。

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

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

#content{
overflow: hidden;
}

#content{
overflow: visible;
}

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

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



$this->Html->link

どっちが推奨なのかな?

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

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

例えばの話、
elementAで
i++;
elementBで
i++;
と定義しておいて、elementAを2回、elementBを1回呼んだとした場合、
iを参照して3という値を取りだしたいのです。
08538522010/10/18(月) 22:53:25ID:???
追記です。
案としてsession変数を使用したのですが、viewからはSessionに書き込めないとのエラーとなりました。
代替の手段ありましたらお教え頂ければと思います。
08548522010/10/18(月) 22:59:34ID:???
解決しました。
ヘルパー内にpublicな変数を定義しておけば、element間で共有参照できます。
ありがとうございました。
0855nobodyさん2010/10/19(火) 16:16:01ID:???
cakeが扱えるようになるとphpの世界は変わって見えますか?
0856nobodyさん2010/10/19(火) 20:42:14ID:???
見えない
0857nobodyさん2010/10/19(火) 21:30:04ID:???
>>847
そんなのよくあることだよ。
写真とかも修正してあるしさ。
風俗では。
0858akiyan2010/10/20(水) 00:32:48ID:???
いやホントに
改めて言うのも照れてしまうけれど花金明け土曜日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世紀エンジニアの魂だ

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

http://amanda.cart.fc2.com/
0872nobodyさん2010/10/22(金) 13:47:09ID:???
燃やして二酸化炭素にでもしろ
0873nobodyさん2010/10/22(金) 14:58:08ID:???
精子がついてそうだからやだ
0874nobodyさん2010/10/22(金) 18:05:16ID:???
>>871
広末の写真集とか 双葉文庫 おさな妻 (中古)とかw
0875nobodyさん2010/10/22(金) 18:10:16ID:???
なんだその他人に譲渡すると法に触れそうな感じのタイトルは
0876nobodyさん2010/10/23(土) 10:03:30ID:???
みなさんbakeコマンド使ってますか?
0877nobodyさん2010/10/23(土) 13:19:54ID:???
>>876
使ってるよ
0878nobodyさん2010/10/23(土) 17:43:04ID:???
1.3以降はfind使う分にはSQLインジェクション気にしなくていいんですか?
0879nobodyさん2010/10/24(日) 16:19:37ID:???
CakePHPの予約語一覧てどこかにないですか?
flashというアクションが動かないけど予約語なの?
0880nobodyさん2010/10/24(日) 16:59:12ID:???
/cake/libs/controller/controller.php
の中にflash既にあるよね
0881nobodyさん2010/10/24(日) 17:01:40ID:???
>>880
ホントだ。こういうのいちいちソース検索しないといけないのかなあ
0882nobodyさん2010/10/24(日) 17:09:46ID:???
ここでも読んでろよ猿
http://api.cakephp.org/classes
0883nobodyさん2010/10/24(日) 18:16:32ID:???
チュートリアルやるとflash出てくるよね
0884nobodyさん2010/10/25(月) 00:06:25ID:???
FastCakePHPって本最悪だなー
手抜きもいいところだし著者の曖昧な知識を隠そうとしてる節が見受けられる
CakeどころかPHPですらよくわかってないじゃんと思って著者調べてみたら評判最悪なのな
詐欺オークションに関わってるとか
金返せ つーか発禁にするべきレベル
0885nobodyさん2010/10/25(月) 10:16:06ID:???
今頃1.1時代の本を買うアホがどこにいるんだよ
そもそも中身は技評で連載してたもののまとめだし
↓これと中身一緒でしょ?
ttp://gihyo.jp/dev/serial/01/cakephp
0886nobodyさん2010/10/25(月) 10:21:29ID:???
当時としてはこの連載自体はそんな悪くないと思ったけど
まあ書籍にするとまた話は別だよね
0887nobodyさん2010/10/25(月) 10:48:09ID:???
単なる妬みでしょ
相手したらいかん
0888nobodyさん2010/10/25(月) 10:50:51ID:???
akiyanの悪口言うヤツは許さんぞ!
0889nobodyさん2010/10/25(月) 12:53:16ID:???
1.32だが、AppControllerで
var $uses = array( 'User' );
などと指定しているモデルは、それを継承した他のコントローラでは使えないの?
子クラスの方でも同じ指定をしないと見つかりませんエラーになった。
そういうもんなの?
0890nobodyさん2010/10/25(月) 13:39:07ID:???
そういうもんだよ。
0891nobodyさん2010/10/25(月) 15:43:32ID:???
>>884
詐欺オークションに関わってるってどういうことだ?
ペニーオークションなら、むしろ批判記事書いてなかったっけ
0892nobodyさん2010/10/25(月) 16:19:46ID:???
参加しただけでもある意味関わってるということになるのかもしれないね
「関わってる」という言葉はいろいろ使えて便利ですね、>>884さん
0893nobodyさん2010/10/25(月) 18:04:56ID:???
http://bakery.cakephp.org/jpn/articles/markstory/2010/10/24/cakephp%E3%81%AE%E3%81%AE%E3%81%AE%E3%81%AE%E3%81%AE%E3%81%AE%E3%81%AF%E3%80%811_3_5%E3%82%92%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%81%AF

これなんなののののの?
なんか怖い・・・
0894nobodyさん2010/10/25(月) 18:14:20ID:???
くそわら
0895nobodyさん2010/10/25(月) 23:56:29ID:???
cookbookってなんでいつも重いの?
0896nobodyさん2010/10/26(火) 11:40:47ID:???
海外にあるから
0897nobodyさん2010/10/26(火) 14:05:25ID:???
リンクのURLミスりまくってるのも海外にあるから
0898nobodyさん2010/10/26(火) 20:45:06ID:???
>>891
アフィ付きのマンセー記事書いてるじゃん
0899nobodyさん2010/10/26(火) 20:58:55ID:???
めんどくさいからリンク貼ってくれ
0900nobodyさん2010/10/26(火) 22:33:47ID:???
これだろ?
これを読んでペニーオークションに関わってる人物で、マンセーしてるようには見えないな
統合失調症か何かか?
ttp://www.akiyan.com/blog/archives/2010/09/penny-auction.html
0901nobodyさん2010/10/27(水) 01:31:31ID:???
>定価7万の商品に対して、最終的に参加者全員が投入した合計手数料は35万
ワラタ
さすがにこれ読んでペニオク始めようと思うやつはいないだろ
0902nobodyさん2010/10/27(水) 03:10:40ID:???
株式会社ヨセミテは事業停止したけど、塚田さんはどこに消えたんだ?
0903nobodyさん2010/10/27(水) 09:40:24ID:???
アフィ乞食の提灯持ち必死だな
0904nobodyさん2010/10/27(水) 10:21:12ID:???
ページネーションを始点と終点でループさせる方法を教えてください
0905nobodyさん2010/10/27(水) 10:28:49ID:???
904 :nobodyさん :sage :2010/10/27(水) 10:21:12 ID:???
ページネーションを始点と終点でループさせる方法を教えてください
0906nobodyさん2010/10/27(水) 11:56:14ID:???
使用するDBを動的に定義する方法はありますでしょうか?

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

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

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

まさしくやりたいことが見つかりました。
ちょっとこちらの方法を試してみます。
0913nobodyさん2010/10/27(水) 15:14:15ID:???
>>911
それを最初に書けよw
あんたの質問が下手だから誰も回答しなかったんだな。
0914nobodyさん2010/10/27(水) 15:24:52ID:???
まぁちゃんと解決方法をかいたのは偉い。
0915nobodyさん2010/10/27(水) 15:58:20ID:???
偉いな、褒めてつかわす
0916nobodyさん2010/10/27(水) 16:31:16ID:???
よきにはからえ
0917nobodyさん2010/10/27(水) 16:44:38ID:???
あ〜れ〜〜
0918nobodyさん2010/10/27(水) 17:12:39ID:???
俺初心者だから時々ここで質問したりROMったりしてるんだけど、最近ようやく
ここは俺みたいな奴しか見ていないことがわかってきた
0919nobodyさん2010/10/27(水) 17:17:07ID:???
オレもオレも
09209062010/10/27(水) 18:45:23ID:???
>>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カラム足りないとエラー

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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