【PHP】フレームワーク CakePHP 14ホール目【v2.1】at PHP
【PHP】フレームワーク CakePHP 14ホール目【v2.1】 - 暇つぶし2ch596:nobodyさん
12/09/12 05:14:49.77
>>595
ありがとうございます。
モデルの本来の使い方をやっと知った感じです。

コントローラに何でも詰め込んでいましたが
モデルに検索機能とかを移動させたら大分コードがすっきりしました。

597:nobodyさん
12/09/12 10:25:29.96
バリデーションて使ったことないんだけど
ユーザー入力からのデータを保存する際には使った方がいいのか

598:nobodyさん
12/09/12 11:06:09.67
君次第だ

599:nobodyさん
12/09/12 13:35:01.67
どうでもいいってことか

600:nobodyさん
12/09/12 14:33:36.86
Cake2.2にしたけど、どうしてもredirectするとセッションが空になるという問題が起きて
2日ぐらい調べているけどわからない
海外フォーラムとか見ても多発してるが解決策がない模様
1.3に戻すか…

601:nobodyさん
12/09/12 16:00:33.62
>>600
あぁ、どっかで回避策読んだなぁ、、、
割と簡単に解決できるようなこと書いてあった。

602:nobodyさん
12/09/12 18:21:16.88
うーむぐぐってもぐぐっても解決法が見つからん
古いバージョンのなら出てくるんだけど、当然試してもダメだった

よく調べるとリダイレクトすると空になるんじゃなくて、
リダイレクト前後でsession_id()が異なる値を返し、リダイレクト前にwriteした値が正しく保存されてないようだ
何故こうなるのかがわからない

603:nobodyさん
12/09/12 19:14:19.36
>>600
Cakeってこういうバグたくさんあるからいやなんだよ

604:nobodyさん
12/09/12 19:19:58.01
同感。まだまだ旧バージョンを使い続けた方がいいみたいだな
1.3も1.3.10ぐらいまではひどいバグあった、テーブル全消し喰らったり

605:nobodyさん
12/09/12 19:24:44.80
Cakeに限った話じゃないが、セッションてデバッグしにくいよな

606:nobodyさん
12/09/12 20:06:50.64
セッションがどれぐらい保持されるかっていう設定もややこしすぎるしCake

607:nobodyさん
12/09/12 23:23:35.18
セッション切れは多分存在しないcssとかjsとか呼び出しちゃってんじゃないか
なんでもcakeのバグとか言わない。

608:nobodyさん
12/09/13 00:03:27.42
>>600
普通にできるけど?

609:nobodyさん
12/09/13 07:33:06.03
既存のWebアプリに外部に機能を提供するAPIを追加したいんだけど
APIでのユーザ認証はどんな風に実装するのが普通でしょうか?
APIへのセッション情報の受け渡し方法が判らないです・・・

610:nobodyさん
12/09/13 08:19:36.38
クッキーで渡すしかない?

611:nobodyさん
12/09/13 10:08:21.91
Oauth

612:nobodyさん
12/09/13 11:09:41.72
>>611

トークン管理(発行・破棄)とか多重ログイン対応とか考えると大変そう・・・

613:nobodyさん
12/09/13 11:11:51.90
あっそ

614:nobodyさん
12/09/15 18:54:29.08
score_daily

って名前のテーブルを定義しようとしたら
score_dailies にしろってエラーがcakeから返されるんだけど
どうも daily は形容詞であり、複数形など無いので
凄く納得が行きません。

テーブル名称は、複数系にしなくちゃならないのでしょうか?

615:nobodyさん
12/09/15 18:58:42.11
daily_scores


いやならmodelにuseTableで指定すればいいだけ

616:nobodyさん
12/09/15 19:28:52.44
>>615
!!!Good!!!

617:nobodyさん
12/09/17 13:46:54.01
コントローラーのアクション関数中で$this->redirectを書いたら
それ以下の行は実行されないという認識であってまっすか

618:nobodyさん
12/09/17 14:23:03.05
>>617
第3引数次第。デフォルトではそれでOK。

619:nobodyさん
12/09/17 16:12:43.15
>>618
なるほど㌧です

620:nobodyさん
12/09/18 10:50:35.32
Cake2.2
core.phpで Configure::write('debug', 0);としていても、エラー時にCakeのエラー表示が出てしまいます
出さないようにするにはどこで設定するのでしょうか?

621:nobodyさん
12/09/18 22:18:22.36
php のエラーじゃなくて?

622:nobodyさん
12/09/18 22:38:41.86
です。Cakeのエラーです。

引き続き調べていてわかったのは、PHPにエラーがある場合にそうなります。
存在しないURLを入れた場合には、CakePHPのエラー表示用の?ソースコードが吐かれます。頭にCakeのコメント付きの。

これでは困るので、なんとかならないでしょうか。何かおかしいと思うのですが…。
エラーがなければ正常に動いています。

623:nobodyさん
12/09/19 00:47:19.09
error_reporting(0) はしてみた?

624:nobodyさん
12/09/19 08:58:59.05
コントローラとかビューでdebug上書きしてるんじゃないの

625:nobodyさん
12/09/19 10:46:33.83
2でどのくらい速くなったの?ざっと見た所構造同じだし、速くできるような違いが見当たらなかったが
モデルの遅延読み込みで速くなったって、アソシエーション使ってなければ関係ないんじゃないの?

626:nobodyさん
12/09/19 16:01:01.46
>>625
URLリンク(d.hatena.ne.jp)

627:nobodyさん
12/09/19 16:03:18.26
>>626
㌧クス
Verあがるたびに遅くなってるw

628:nobodyさん
12/09/19 16:28:46.26
2.1でテストしている限りには速く感じたけど、
>>626見ると、バージョンアップしていく毎に遅くなるのか。

まぁ、機能が増えるから遅くなるのはわかるけども

629:nobodyさん
12/09/19 16:56:44.01
このやり方じゃボトルネックがよく分からんが、
DBをメモリに乗せてないだろうからDB接続を確立させるコストが一番高いんだろうな

そういう意味じゃどのFW使っても大差ないと思うし、バージョンの差分などは気にするほどでもないと思う。

630:nobodyさん
12/09/19 16:58:04.41
つまり1.3でも大差ないってことだ

631:nobodyさん
12/09/19 18:20:17.13
感覚的には1.3系より2系の方が速く感じるけどな

632:nobodyさん
12/09/19 19:49:16.34
っていうか、実際早いんだろ

633:nobodyさん
12/09/19 20:54:32.34
少しはな

634:nobodyさん
12/09/20 01:40:17.08
じゃぁ良かったじゃん

635:nobodyさん
12/09/20 04:06:56.13
元が遅いからそんなによくない

636:nobodyさん
12/09/20 10:15:47.13
じゃぁ何が早いのさ

637:nobodyさん
12/09/20 10:32:10.03 ir1LF+Ba
Cake2.2を使ってます。
各アクションのsetメソッドで1つづつ値を渡す方法でなく
AppControllerから一括でViewの全てのディレクトリのctpに変数を渡す方法ってありますか?



638:nobodyさん
12/09/20 10:52:45.15
beforeFilterかbeforeRenderあたりに書けば良いんでないの

639:nobodyさん
12/09/20 11:02:18.03
Cake2.2を使ってます。
掲示板を作っていて、スレタイモデルとレスモデルが
スレhasManyレス
レスbelongsToスレ
になっているのですが、レスが追加された際にスレのmodifiedを自動更新する方法ないでしょうか?
counterCacheを使うとレス数カウントはできるのですが、更新時刻も取りたいです

640:nobodyさん
12/09/20 16:59:36.49
>>639
そんなロジック実装してないよ。
Modelに書いとけ。

641:nobodyさん
12/09/22 18:00:13.95
counterCacheの存在を初めて知った


642:nobodyさん
12/09/22 18:06:13.12
アソシエーション便利だけど、裏ではどんだけ無駄な処理が実装されて動いてるんだろうな
findやsaveを1回する度にCPUが悲鳴を上げているような気持ちになる

気になるので今度lib以下のソース見てみるか
使わない機能はばっさりコメントアウトとかしちゃおうかな

643:nobodyさん
12/09/22 18:12:35.09
そういうのがもっと整理されれば速度も上がるんだけどね

644:nobodyさん
12/09/22 19:00:02.06
cakephpは使わないコードはなるべく読み込まないような実装になっているはず

645:nobodyさん
12/10/01 00:47:57.77 fpJxZWOx
ファイルのアップロードで、fileに対するバリデーションのことなんですが、
ファイルが指定されていたらファイル形式、ファイルサイズなどをバリデーションにかけて、
指定されていなかったらかけない、という書き方がわかりません
どうしたらいいんでしょうか?

646:nobodyさん
12/10/01 02:38:43.69
ファイルのアップロードでファイルが指定されている/いないって意味がよく分からないし、
どこで躓いているのかもよく分からないし、
CakePHPのバージョンも分からないので答える気が失せる質問だから、
何となくvalidate 系のコールバックをうまく使えばいいじゃんとしか言えない。

647:nobodyさん
12/10/01 05:38:17.07
if (isset($_FILE['image'])) {
//ファイルがアップロードされた場合のバリデーション
} else {
return true;
}

素のPHPで言うと、こういう事じゃないの?

648:nobodyさん
12/10/01 07:27:09.08 qwXCS9RT
>>646
$form->file()でファイル渡せる状態になってるフォームで、
そこにファイルを指定したときだけファイルの中身のバリデーションをかけたいってことです

>>647
ありがとうございます
allowEmptyみたいな感じで、
<input type="file">にファイルを指定していなければバリデーションルールはスルーする
みたいな簡単にできるものってないんでしょうか?

649:nobodyさん
12/10/01 10:28:51.05
簡単には出来ないよ。俺もルールは自作してるよ

650:nobodyさん
12/10/01 10:29:01.17
>>648
>>1
>質問するときはCakePHPのバージョンを書きましょう

651:nobodyさん
12/10/01 10:30:55.20
俺は簡単にできてるけど、やってみてできなかったの?

652:nobodyさん
12/10/01 20:09:57.83 fpJxZWOx
>>649
ありがとうございます自作してみます

>>650
echo Configure::version();してみたら1.3.8って出ました
書き漏れすみません

>>651
allowEmptyでは無理でした
普通にエラー警告(ファイルの形式を見て、jpgでなければ警告を出すようにしてました)が出ました

653:nobodyさん
12/10/01 21:49:36.94
Cake2本がついに発売されてるのか
2のリリースから1年も経って、やっとまともな本が一冊
うれしい

654:645
12/10/01 22:08:47.24 fpJxZWOx
>>649
>>647のやり方でうまくいきました
みなさまありがとうございました

655:nobodyさん
12/10/02 01:23:26.02
いまだ1.3使ってる人いるんだな
何故2系を使わないのか

656:nobodyさん
12/10/02 03:11:43.69
使う理由がないから

657:nobodyさん
12/10/02 15:09:48.22
さすがに新案件は2系だな

658:nobodyさん
12/10/02 18:17:45.17
これまで書いたコードを、2対応に書き直す時間がないお

659:nobodyさん
12/10/02 18:23:04.39
そんなに時間かからないよ

660:nobodyさん
12/10/02 18:26:06.05
>>659
きちんとテストコードをかいてるひとには苦行だぞ

661:nobodyさん
12/10/07 03:32:25.58 vSsbr+AJ
CakePHPでバリデーションエラー時に
エラーメッセージをまとめて一箇所に表示する方法ってある?

662:nobodyさん
12/10/07 10:11:59.83
>>661
無い

663:nobodyさん
12/10/07 15:15:02.59
ちょっと前に同じ話が出てたはず
ログ見るべし

664:nobodyさん
12/10/12 18:03:03.50 zHaiJKat
最終ログイン時間を記録する場合どういう実装をするのが適切でしょうか?

僕が思いつくのは、
app_controller.phpのbeforeFilter()に、
アカウントテーブルのlastloginに現在の時間をupdateする方法です

ログインのアクションに記述すると、
クッキーで自動ログインしている際などはそのアクションを通らないので不適切でした

なにか他に良い方法ありますでしょうか??

665:nobodyさん
12/10/12 23:39:10.35
自動ログインの場合も記録したいというのならそれが正解なんじゃないかな

666:nobodyさん
12/10/16 15:59:26.74
はてブで見かけた、
「外注が作ったCakeのコードが糞だから書き直した」的なブログ記事。
「お前のコードも糞じゃねぇか」って叩かれてワロタw

てか、俺の書き方が意外と駄目じゃないと知っただけでも収穫あったぜ

667:nobodyさん
12/10/17 20:17:29.91
URLくれくれ

668:nobodyさん
12/10/17 20:54:19.04
URLリンク(ac7.tumblr.com)
これかな

669:nobodyさん
12/10/18 00:28:24.24
cakePHPの勉強を始めようと思い、ver2から始めようと思ってます。
「プロになるためのPHPプログラミング入門」という本が良さそうと思ったんですが、
ver1.3基準で書かれているようです。
cakePHP2を勉強するうえで、1.3基準の本は有用でしょうか?

670:nobodyさん
12/10/18 01:17:25.05
有用ではありません。
もうcake2の本はあるんだからそっち選びなさい。
CakePHP2 実践入門 は評判良いぞ。

671:nobodyさん
12/10/18 23:55:26.47
>>669
670に同じく今さら1.3の本を読むのは時間のむだ。
公式のチュートリアルを何回も繰り返して手順を身体に覚えこませてから
>>670 の本を読むといいと思うよ。

672:669
12/10/22 14:14:23.93
遅くなりましたがアドバイスありがとうございました

673:nobodyさん
12/10/24 12:14:02.26
2.2.2を使用しています。
Authコンポーネントのログインで、認証条件を付ける時、
以下のようにすればOKとあったのですが、条件が適用されません。
書き方が違うのでしょうか?

$this->Auth->userScope = array( 'User.status'=>1 );

674:nobodyさん
12/10/24 14:29:36.53
さくらサーバーをレンタルし、2.2.2のソースをCakeファイル直置きでアップロードした所
同コントローラの別アクションへredirect処理が行なわれなくなりました。
$this->redirect(コントローラ名:アクション名)を試してみても
$this->redirect(相対パスor絶対パス)の形でも
どちらの形式でも正しくリダイレクトが行なわれていないようです(真っ白なページが表示される)
何か間違っているのでしょうか

675:674
12/10/24 15:50:39.87
とりあえず動かす為にJavaScriptで遷移させます
お騒がせしました

676:nobodyさん
12/10/24 16:28:04.62
>>673
それ、1.3の書き方なんじゃないの?
よく分からんけど公式ドキュメントにそんなプロパティ載ってないよ
1.3ならあったみたいだけど

>>674
真っ白=debugモードが0でいいのかな?
だとしたらキャッシュクリアしてみた?

677:nobodyさん
12/10/24 16:30:39.54
>>673
今改めて見直したら AuthComponent::$authenticate じゃないかな?

678:673
12/10/25 09:13:43.26
>>676-677
ありがとうございます。
自分もソースを見直したら、以下のようにしたら実行できました。

$this->Auth->authenticate = array(
  'Form' => array(
    'scope' => array('User.status' => 1)
  )
);

679:nobodyさん
12/10/26 15:07:41.06
ファイルアップロードを今まで自作コンポーネントで扱っていたのですが、
これってモデル(ビヘイビア)の処理ですかね?
コントローラ側でエラーチェックとかアップロード先のパスとか書いていくと
長くなるのでどうすれば納まりが良く、使い回しが利くかと悩んでいます。


680:nobodyさん
12/10/26 15:44:39.23
679ですが、後から考えたらコントローラに入れる方が小回り利きますね
効率化よりも今まで書いていた方法で行きます。

681:nobodyさん
12/10/26 17:58:57.48
まぁ、それでいいなら構わないけど、Modelだよ普通は。
あとプラグインもいいのあるけど、何で使わないの?

682:nobodyさん
12/10/26 19:01:29.27
>>681
自分の使い方だと、コントローラの方が良いと思いまして。

例えば、一度アップロードしたファイルはセッションに入れて、
フォームのその他の項目にエラーがある時は、
そのセッションを表示して再アップロードさせない。

みたいな処理を入れる時、セッションコンポーネントを使うので、
モデル内で解決するより、コントローラの方が簡単だと思いまして。

あと、プラグインも小回りが利かないんです。
ファイル名をいくつかのパターンで生成したい時とか、
最初は仮フォルダにアップして、save前に公開画面のフォルダに移動するとか
そういう細かい仕様に対応するには自作の方が便利なんです。
ファイルアップロードの仕組みを自作する事自体は簡単ですし。

683:nobodyさん
12/10/26 19:24:22.60
言わんとしてることは大体わかるけど、CRONの処理とかはないの?
テーブル無しのUploadFileモデルとか作った方が小回り効くような気がする・・・


684:nobodyさん
12/10/28 17:11:17.13
CakePHP2.2.2を利用しています。
コントローラーからビューにメンバ変数の連想配列を渡したいのですが、躓いています。

下記の Controller にて、
class UserController extends AppController {
 var $hoge = array();
 public function beforeFilter() {
  $this->$hoge['foo'] = 1;
  $this->set(compact('hoge'));
 }
}
として View 側で$hoge['foo']を呼び出そうとして、
Undefined variable: hoge
のエラーが返ります。
compactを使用しない場合でも同様でした。

URLリンク(book.cakephp.org)
を参考に考えてみたのですが、何か思い違いをしていますでしょうか?


685:nobodyさん
12/10/28 17:19:31.98
>>684
$this->set('hoge',$this->hoge);

686:nobodyさん
12/10/28 17:25:23.15
>>685
すんなり解決しました。ありがとうございます。
提示内容を見て、どう思い違いをしていたのか理解しました。
これに半日かけてドキュメントを漁っていましたが、もう少し基本を勉強したいと思います。

687:nobodyさん
12/10/29 12:31:19.66
CakePHP 2.2.2で
一度だけ使えるクーポンを定義しようとしていて
'Model.coupon' => 'hoge'
で保存しておいて

checkルーチンで
'Model.coupon' => 'hoge'でfindし、見つからなければfalse
見つかったら'Model.coupon'=>'' でからにしてsave後 trueを返す。
というのを作ったのですが、 saveするとfalseが返ってきます。
saveをしなければ trueのまま返るのですがなぜなのでしょうか?

688:nobodyさん
12/10/29 12:39:28.07
>>687
バリデーションチェックでnotempty指定してるとか?

689:687
12/10/29 13:21:50.79
>>688
SQLのダンプを表示させたところ
findのSQLは どちらも同じなのですが、Num.rowsが saveした方では0になります。
save後にfindが走っているってことでしょうか

690:nobodyさん
12/10/29 13:44:36.50 h036kd/w
apps/Console/CommandHogeShell.php
この中で定義したメソッドに引数を渡す事ってできないの?

CUIから内部で定義したメソッドをキックすると
Warning Error: Missing argument 1 for HogeShell::Test()

っていうエラーが出ちゃうんだけど。

691:nobodyさん
12/10/29 13:55:16.32
マニュアル読みなさい

692:nobodyさん
12/10/29 15:09:32.64
findについて質問です。
以下のようなモデルがあるとして
A hasMany B

B belongsTo C

A.id = 1のCのリストを取得

$this->A->find('all', 'conditions'=>array('A.id'=>1))として
取得した中のBの中に含まれるCをとってくるしかないのでしょうか

SQL文としては以下のようなものを想定しています。
SELECT C.* FROM A, B, C WHERE A.id=1 AND A.id = B.a_id AND C.id = B.c_id


693:692
12/10/29 15:56:52.28
'joins'で紐付けできました。
お騒がせしました

694:687
12/10/29 16:35:42.03
find();
SQLダンプと結果の出力
exit;
save();
だと、SQLダンプと結果はNumrows = 1 (データ更新されていないので何度呼び出しても、、)ですが

find();
SQLダンプと結果の出力
save();

だと SQLダンプは同じで、Numrows=0になります。
後ろで行った saveが 前に書かれたfindに影響を与えるというのがどうしてなのかがわかりません。



695:nobodyさん
12/10/29 16:45:00.54
なにいってんだこいつ

696:687
12/10/29 16:49:40.01
Queryを見ると saveを入れた方は

1. SELECT 文 Num.rows = 0
2. SELECT COUNT文
3. UPDATE 文 Num.rows = 1
となっていました。

3の結果が1へ影響しているみたいです。

697:nobodyさん
12/10/29 19:04:11.24 h036kd/w
>>691
マニュアルのどこにかいてんのさ。

698:nobodyさん
12/10/29 19:18:29.22
書いてあるから隅々まで全部読みなさい

699:687
12/10/29 19:20:25.68
すいません、私のブラウザのせいでした。
へんな機能拡張がページを2回呼んでたみたい

700:nobodyさん
12/10/30 00:25:02.95
>>697
cakephpでコマンドで引数を渡す

とかでぐぐればいくらでも出てくるだろボケ

701:nobodyさん
12/10/30 16:38:01.14 sDbMhdsy
>>700
サンキュー。


あと
$contents = @file($reading_file_name );

の @ ってなに?

702:nobodyさん
12/10/30 16:42:13.00
>>701
URLリンク(www.google.co.jp)

703:nobodyさん
12/10/30 17:21:19.86
>>701
お前はPHPの基本からやり直せ

704:nobodyさん
12/10/31 01:06:58.14
フレームワーク以前の問題ですな

705:nobodyさん
12/10/31 12:18:01.71
>>701
顔洗って出直してこいw

706:nobodyさん
12/10/31 15:08:44.33
passedArgsとgetの共存ってどしたらいいすか?
formヘルパから作られるgetをrest的なpassedArgs形式で渡したいッス。

example.com/controller/action/arg1:val1/arg2:val2/?arg3=val3
ってなってるヤツを
example.com/controller/action/arg1:val1/arg2:val2/arg3:val3
としたいッス。

js使えば行けるし受け側でgetの処理をすればいけるんだけど、こうすれば楽じゃね?的なご指摘あればうれしいです。
>>671
現状はactionでgetとごちゃまぜにしたり、場合によってはappControllerでget優先で$this->passedArgsを書き換えてる感じッス。

707:nobodyさん
12/10/31 15:10:54.24
了解ッス

708:nobodyさん
12/10/31 19:38:39.19
>>706
バージョン書けって
2系ならある程度分かってるから教えられるけど、
passedArgsってパラメータは1.3系なのかよ?

709:nobodyさん
12/10/31 20:41:07.57
>>708
2っすわー。

710:nobodyさん
12/10/31 22:21:21.64
>>709
URLリンク(api.cakephp.org)
FormHelper::create($mode, $options) の、第2パラメータ $options に、
'url'をキーとしたパラメータをセット。

'url' の値は string | array で、そういうパラメータを渡したい場合は
連想配列で構造を渡す。
CakePHPのルータがこの連想配列のURLパラメータと現実のURLを相互変換するのは理解OK?

で、通常のURLパラメータに該当しないキーで値をセットすると、
・・・つまり
array('arg1'=>'val1', 'arg2'=>'val2')
のようにやると、やりたいことができる。

711:nobodyさん
12/10/31 22:50:43.25
何いってんの?
formにゅうりょくちをコロンセパレートにしたいんだろ
formってそういう仕様だから、自分で言ってるとおりjsでがんばる。それかばかだけどリダイレクトしちゃえ

712:nobodyさん
12/10/31 23:58:50.04
んなもんそれ以外の方法で出来るわけねーだろ

713:706
12/11/01 11:41:29.98
みんな色々意見あざす~。

結局ちまちまやるっきゃないぽいっすね~。
みんなそうしてるんかね~。マンドクサ

714:nobodyさん
12/11/01 13:50:06.03
俺もフレームワーク使う限りには効率的なやり方を模索して
長時間、あれやこれやと試すことがあるけど、
目的は「動く」事だから、効率化や綺麗なソースよりも
まずは動くことを目指してやると良いよ。こだわりすぎはいかんぞ。

715:nobodyさん
12/11/01 15:07:46.14
cakephp2.2を使用しています。
ビューからrequestActionでカテゴリを取得しようとしているのですが、
$this->requestAction('/widget/category');

widgetコントローラにcategoryアクションが無い場合は
どうすればいいのでしょうか?
単なる構文ミスでエラーになるのですが、
存在確認みたいなコードがあれば教えてください。

716:nobodyさん
12/11/01 16:54:03.16
>>714
納品してポイなら良いんだけどね~。
何年か自分たちでメンテしていくことになるときには気分の良いコードの方が精神衛生上いいなぁと。

まぁそうは言ってもね、一年前のコード見てすごく気分悪くなるんですけどねw

717:nobodyさん
12/11/03 21:12:09.24 nZj97DWz
質問なんですけど、cakePHP 2.0 で認証時に使用するテーブルの列の名前を
id じゃなくて login_id にしたいんですけど、この列名って固定なんでしょうか?

718:nobodyさん
12/11/03 21:18:17.79 X1g36ZBW
$primaryKey

719:nobodyさん
12/11/03 21:43:28.47
>>717

primaryKey を login_id に設定した上で
下記コードを記述しました。

<td><?php echo $this->Form->input('login_id',
Array('label' => false,'style' => 'width:150px;')); ?></td>

するとなぜか、コンボボックスが表示されてしまうんですけどなんでしょうか?

720:nobodyさん
12/11/03 22:58:33.57
マニュアルのFormの項目見たりFormHelperのAPIリファレンスみたりソース見たりしてきて

721:nobodyさん
12/11/03 23:04:10.03
適当に調べてみます。

722:nobodyさん
12/11/03 23:10:32.22
>>719
FormHelper::input は、オプションの自動補完機能があるんですよ~

で、***_id っていうフィールド名の場合、フォームのデータ型を指定しないとselect扱いになるというわけ。

それを回避するには、オプションで明示的に'type'を'text'とかに指定する。

723:nobodyさん
12/11/04 00:26:48.52
>>722
ありがとうございます。全くしりませんでした。。。
別な方法で迂回して対処しようとしてました。。。

724:nobodyさん
12/11/04 00:44:08.63
AdminsController.php の中に次のコードを書いています。
public
$uses = Array('User'),
$components = Array(
'Session',
'Auth' => Array(
'loginRedirect' => Array('controller' => 'admins', 'action' => 'index'), // ログイン後のリダイレクト先
'logoutRedirect' => Array('controller' => 'admins', 'action' => 'login'), // ログアウト後のリダイレクト先
'loginAction' => Array('controller' => 'admins', 'action' => 'top'), // ログインしていない場合のリダイレクト先
'authenticate' => Array('Form' => Array('fields' => Array('username' => 'email')))
)
);

そしてブラウザより
/admins/add にアクセスすると問題無く /admins/addのコントローラが実行され
/Views/Admins/add.ctp が表示されるのですが

/admins/addcustomer にアクセスすると、/admins/top に飛ばされてしまいます。
なぜ、/admins/add がリダイレクトされないのに /admins/addcustomer だと
リダイレクトされてしまうのでしょうか?
※add() { //略 } をコピーして作成したコントローラ内のファンクションが addcustomer () { //略 }となります。


725:nobodyさん
12/11/04 11:00:47.88
CakePHP 5.0ぐらいになったら使う

726:nobodyさん
12/11/04 12:56:08.07
>>1にあるフォーラムで新規登録したいのだけど、フォームから登録しても全く音沙汰無し。
ニュースリリース見ると2006年で登録止まってるし、管理者からは放置されてるのかな?
フォーラム自体の投稿はぼちぼちあるから古参だけの閉じた環境になってる?

727:nobodyさん
12/11/04 13:01:18.74
Cakeで作ってあるからバグってるとかなんじゃないの
知らんけど

728:nobodyさん
12/11/04 13:16:21.36
フォーラムはxoopsじゃないか

729:nobodyさん
12/11/04 19:10:28.20
なぜCakeで設計しないのか?!

730:nobodyさん
12/11/04 21:38:37.79 eiB+7ElR
画面上に次の2つの入力項目があります。
そのうち、1)と2)で入力された値の組み合わせのチェックを
独自バリデーション内で行いたいのですが
どうすれば、独自バリデーションファンクション内でサブIDの値を
捕捉する事が出来ますか?

1)基本ID ( basic_id )
2)サブID ( sub_id )

public $validate = Array(
'basic_id' => Array(
'dokuzi' => array(
'rule' => array('isCorrectId', 'ダミーの引数'),
'message' => '独自バリデーションの結果エラーが出ました。。'
)


function isCorrectId($data, $dummy_args)
{
$basic_id = $data["basic_id"];
$sub_id = {サブID}; ← どうやって取得したらいいか分かりません。
return true;
//return false;
}

731:730
12/11/04 21:56:02.04 eiB+7ElR
お願いです!誰か教えて下さい。
はまりまくってます。

732:nobodyさん
12/11/04 22:07:20.84
>>730
バージョン不明なので2と仮定して、
定石的に Model に定義しているのを前提に。

Post されたデータなら
$this->data['Model']['basic_id']
$this->data['Model']['sub_id']
で参照出来ると思うけど、何でわざわざ関数に引数渡すの?
あと”ダミーの引数”って書き方だけだと配列で渡しているか不明なんだけど、
配列で渡してないから参照出来ないんじゃないのか?

733:nobodyさん
12/11/04 22:10:34.23
>>731
数レス進んでいる中でスルーされているんならわかるが、
無レスで催促求めるんなら2ch向いてない、ヤフー知恵袋あたりに帰れ

734:730
12/11/04 23:39:10.86 eiB+7ElR
>>732
ありがとうございます。

次の様に項目毎に独自バリデーション関数を指定したところ
ファンクション内で var_dump($data); をしたら
画面上の入力項目(基本ID、サブID)の値も取得出来る様になりました。


public $validate = Array(
'basic_id' => Array(
'dokuzi' => array(
'rule' => array('isCorrectSequenceNumber'),
'message' => '独自バリデーションです。'
)
),
'sub_id' => Array(
'dokuzi' => array(
'rule' => array('isCorrectSequenceNumber'),
'message' => '独自バリデーションです。'
)
),



735:730
12/11/04 23:46:59.54 eiB+7ElR
>>734
で、いけると思ったんですけど
結局バリデーションファンクションに値が入って来るのは
1項目毎なのですね。。。

基本ID と サブID の値を同時に絡めて独自判定処理を入れたいのですが
1つのファンクションじゃできないみたいです。

ちょっと回りくどいけど、外部ファイルにパラメータを保存して
よみとってやるしかないんでしょうか?

※cakePHP2 を使用しています。

736:730
12/11/05 00:05:07.80 Ag4y5/HL
自己解決。

コントローラの中でモデルの中で定義した独自バリデーション
ファンクションを呼べばいいんですね。

すると data の中には画面上で入力された値全てを
取得する事が出来ました。

737:nobodyさん
12/11/05 00:43:14.75
DRYの原則無視して良いんならそれもで良いんじゃい?
したらそもそもCakePHP使わずに他の Framework 使えば良いのに。
あと>>732で書いていることを全く理解してないのな。
isCorrectSequenceNumberの中身も書いてないし、そんなんで
アドバイス出来るのはエスパーだけだから知恵袋帰れ。
なんか>>713に通じる者がある。

738:nobodyさん
12/11/05 04:25:36.32
2chは初めてか?config::debug抜けよ^^

739:nobodyさん
12/11/05 11:46:36.35 eArr6OfY
config::debug抜けよ^^


これはどーいう効果があるのさ^^?


740:nobodyさん
12/11/05 18:02:18.24
臭いものに蓋をする ってこうかがあるよ^^

741:nobodyさん
12/11/05 18:33:53.33 eArr6OfY

臭いレスをありがとう

742:nobodyさん
12/11/07 11:03:27.13
conditionsの条件は違うんだけど、似たような処理を行うコントローラがあって、
今まではifやswitchで分けて1つのコントローラ内で納めてたんだけど、
よく考えたら、コピーしてアクション分けした方が見やすいと思うようになった。

ただ、コントローラのソースが増えるからと言って
分けすぎるとスパゲティコード化するし、本末転倒な気がする。
みんなはどういう理念の元、開発してる?

743:nobodyさん
12/11/07 11:32:44.89 DVy9uKri
質問です
Cakeでテーブルのカラムのコメントを取得・更新する方法を教えてください

744:nobodyさん
12/11/07 13:21:38.42
カラムのコメントって何ですか?

745:nobodyさん
12/11/07 13:40:48.60
RDBMS依存のやつ?

746:nobodyさん
12/11/07 14:08:49.06
何ですか?といわれましても…
依存なんですか?

747:nobodyさん
12/11/07 17:42:47.92
>>742
CakePHPベストプラクティスとかfatモデルとかでぐぐれ
まさに解決策が載ってる

ポイントは
ややこしい処理は全部モデルへ移せ
パラメータだけコントローラにおいて置けばいい
って感じ

748:nobodyさん
12/11/07 20:09:38.47
モデルを肥大化させると小回り利きづらくなるんだよな

749:nobodyさん
12/11/07 21:01:57.66
一個のモデルを大きくするんじゃなくて、
モデルを小分けしてアクションの数だけ作ったらいいという話も聞いたが、
Modelディレクトリの直下に並列保存は正直きついな。
もう少しオートローダが強力だと独自に階層作れそうなんだけど。

750:nobodyさん
12/11/07 22:01:19.49
小分けすると結局、スパゲティーにならないか?
階層たどって何がどう連携しているかわかりづらくなると思うよ

751:nobodyさん
12/11/07 23:02:38.91
少なくともテーブルとレコードの分離はしたい

752:nobodyさん
12/11/07 23:11:41.84
ベストプラクティスを知るために、cakeを使った大きなプロジェクトのソースを見れたらいいなあ
規模毎にみんなでコードレビューをしたい

753:nobodyさん
12/11/07 23:39:08.77
baserCMSのソース見たけど、まさにスパゲティーコードだった
どこで何してるか把握するのに時間がかかる

754:nobodyさん
12/11/08 02:24:42.59
croogoはどう?

755:nobodyさん
12/11/08 16:45:25.90
テーブルのカラムを変更した後、何度やってもfinの値が取得出来ないことがあった。
結果的には、modelキャッシュが利いていたのが原因だった。
本番サーバだから、debugレベルも0にしていたので気づくのが遅れたんだけど、
今後の運用に対して良い方法無いかな?
やっぱり、何かDBを操作したら手動でキャッシュ削除するしかないのだろうか

756:nobodyさん
12/11/08 20:03:29.72
>>755
普通にModelのSave系やDeleteのメソッド使えば自動でキャッシュクリアしてくれるはず
そうでないなら自分で消すことになるよ

Modelのソース見てみると何やってるかわかるはず
URLリンク(api20.cakephp.org)

757:nobodyさん
12/11/10 18:06:28.89
cakePHPの勉強をすれば、純粋なPHPのクラス・オブジェクト指向の勉強・理解に役立ちますか?

758:nobodyさん
12/11/10 20:59:34.75
立たないよ。その辺意識しないで良いためにフレームワークがあるんだし。

759:nobodyさん
12/11/10 21:45:57.01
たつよ
ってか基本的なクラス・オブジェクトの概念がないとCake厳しいだろ

760:nobodyさん
12/11/10 22:17:58.60
>>757
役に立たない。
cakeに限らずfwは効率を求めるために
純粋なオブジェクト指向から無理してるところがある。

761:nobodyさん
12/11/10 22:41:59.32
"純粋なPHPのクラス・オブジェクト指向"


幽霊を追いかけるのはやめろ

762:nobodyさん
12/11/11 03:32:21.94
単純な物作ってると、フレームワークの型に乗っかってるだけで
あまりオブジェクト指向の勉強・・・って感じにはならないけど、
ビヘイビアなんかを自分で作ってみると勉強になると思うよ

763:nobodyさん
12/11/11 12:27:53.87
オブジェクト指向を勉強することが目的なのか、PHPを勉強することが目的かで変わってくるな。

PHPのオブジェクト指向そのものは言語仕様の一つのオプションみたいなものだから、
オブジェクト指向を勉強の目的とするにはあまり向いてない。
Cakeとか開発してる連中なんかはPHPだけやってるわけじゃなくて、
いろんな引き出し持ってるからこそ実装できてる箇所も多いと思う。

プログラムの初心者で、オブジェクト指向そのものを勉強したいならJavaがいいんじゃないかな。
別にC#でもいいかもしれないけどいろいろ金がかかる。
Javaはその点書籍もたくさんあるし、無料の資料とかも十分以上あって申し分ない。

764:nobodyさん
12/11/11 17:01:18.82
cakePHP2.2.2で
条件によって joinsでテーブルをLEFT JOINさせようと思っているのですが
joinsを入れてできたSQL文を見ると まずjoinsが入ってから、アソシエーションのLEFT JOINが書かれています。
自分の joinsを後ろに持ってくることはできないでしょうか?

765:764
12/11/11 17:37:42.08
事故解決しました。。
A belongsTo B
B belongsTo C
で、Aの条件と Cの条件でAのリストをとりたかったので A->findでどうにかしようとしてましたが
B->find でとってきた Aを使えばよかったようです

766:nobodyさん
12/11/11 17:59:06.36 63qzaIYV
バリデーションでalphaNumericが日本語も通してしまう問題は、2系では直ってますか?

767:nobodyさん
12/11/14 15:59:16.85
>>764
これを実現する方法はないでしょうか?

768:nobodyさん
12/11/14 16:10:58.98
>>766
試してないが、コードを見る限り同じっぽいから直ってないんでない?
1の時ハマったからalphaNumericは自作を使ってる

769:nobodyさん
12/11/16 16:04:19.01 WLRp6A/S
CakePHP2.xのAjaxバリデーションについての質問です。

画面更新を伴わず、モデルで定義したバリデーションルールでバリデーションをかける方法を探しております。

jQueryで $("form").submit(function() {)

770:nobodyさん
12/11/16 16:06:53.33
上の続きです。

jQueryで $("form").submit()
でフォーム送信ボタンが押された時のアクションを拾ってあげて、
そこからフォーム全体をコントローラに渡し、バリデートを行いたいのですが、
「フォーム全体をコントローラに送る」をどう記述していいのかわかりません。

よろしくお願いします。

771:nobodyさん
12/11/16 16:17:17.30
過疎

772:nobodyさん
12/11/16 16:34:43.12
それ、Cake関係ないよね。
あと、submit押した時にajaxにデータ投げて結果を受け取って
エラーがある場合はsubmit止めるって処理になるわけだけど、
そう言う想定は出来てるの?出来てるならやっぱりCakeは関係ないよ

773:nobodyさん
12/11/16 16:53:16.45
Cake関係ないね

774:nobodyさん
12/11/16 17:17:56.02
一旦ajax考えないで普通に動くフォーム作ってみればいいよ

775:770
12/11/16 17:32:54.70
皆さん、ありがとうございます。
一旦普通に動くフォームを作り上げております。
その際にモデルで定義したバリデーションを利用しているのですが、
普通のサブミットだと、一度画面の更新が発生してしまうじゃないですか。

その画面更新の際に、JavaScriptで生成しているアイテムがすべて消えてしまうのが難点なのです。
つまり、画面更新せずにモデルのバリデーションにフォームを食わせる方法を知りたいのです。
お願いします。

776:nobodyさん
12/11/16 18:12:19.09
jquery ajax post
キーワードはこの辺りな
やはりcakeは関係ない

777:nobodyさん
12/11/16 18:15:40.20
>>775
HTMLの基礎から勉強しろよ。レベルが低すぎる

778:nobodyさん
12/11/16 21:55:17.37
要するによくあるユーザー登録画面でinput中に
そのユーザー名は無効、とか5文字以上入れろ、とか
そんなんをリアルタイムで出したいってことなんじゃね?

779:nobodyさん
12/11/16 22:23:09.72
だからそれはAjaxやHTMLの問題でCake関係ないから

780:nobodyさん
12/11/16 22:49:59.65
うん。だから>>774のアドバイスなんだけど、当人は
”Cake上”で普通に動くフォームは作ってあります、
とかとんちんかんな返答してるんで、理解出来てないんでしょ。
メッセージ出すのはCakeのバリデーションじゃん、だからCakeで動くやり方教えてよ、
って考えなんだからCake抜きで一旦作れ、としか言いようがないよね。
なんかフォーラムもレベル低いのが集まってきてるし、初心者特集でもあったのか。。。

781:nobodyさん
12/11/18 00:55:57.75
別に初心者は大歓迎だが、人の意見を批判して試さないのは感心しないなぁ

782:nobodyさん
12/11/19 16:18:32.93
>>780
皆さんの「Cakeは関係ない」というご指摘の意味が良く分からないのです。
皆さんよりかなりレベルが低いかもしれません。

Cake上で画面更新を伴うフォーム送信は一旦完成させております。
モデルのバリデーションルールで誤入力に対して警告する仕組みも出来ております。
このモデルのバリデーションを実際のサブミットより前に行い、画面更新の前に警告だけを表示させたいのです。
これはAjaxを使ったCakeのモデルへのサブミットだと思うのですが、どうでしょうか?
Cakeは関係ないのでしょうか?

783:nobodyさん
12/11/19 17:12:28.84
>これはAjaxを使ったCakeのモデルへのサブミットだと思うのですが、どうでしょうか?

わかってるじゃねぇか。
だからAjax(jQuery)の方を勉強しろ、Cake関係ないって事だろが。
まずその知識はどうなんだ?それすら出来てないんだろ?

784:nobodyさん
12/11/19 17:16:36.02
腹立つから大ヒント教えてやるわ

フォーム
 ↓
送信ボタンを押す
 ↓
ajaxで判定用のコントローラーにアクセス
 ↓
結果をjsonで返す→エラーがある時は表示
 ↓
エラーがない場合は確認画面へ

これをもう一度見直して、ajaxからcakeにアクセスし、結果をjsonで返して
それを判定するようなjavascriptコード書けよ。それだけだ。

785:nobodyさん
12/11/19 17:29:00.60
>>783
>>784
ありがとうございます。勉強不足を自覚し、JavaScriptを基礎からやります。

786:nobodyさん
12/11/19 18:19:40.42 Ntxmf8gS
みんな短気だなぁ

787:nobodyさん
12/11/19 18:40:01.54
こーいう初心者にお金もらって教える仕事したいなぁ

788:nobodyさん
12/11/19 22:47:28.90
500円で教えるクラウドワークスサイトがあった気がする
ま、500円なんて割に合わないがw

789:nobodyさん
12/11/19 23:13:10.18
1回答えたら、同じ質問が参照される度に500円ならいいんだがな

790:nobodyさん
12/11/19 23:19:15.68
DRY、つまり同じデータを二箇所以上に書かないってポリシーを徹底したい場合、
ModelからもViewからも同じデータを参照できる仕組みが必要だと思うんだけど、
コントローラの仕事を増やさないで、一箇所にある同じデータを参照する場合、
ViewからModelを見に行くってことになるのかなと思うんだけど、おかしい?

791:nobodyさん
12/11/19 23:21:45.88
なんか、790の内容がいまいち伝わる自身がないので補足しておくと、
具体的には、テーブルの内容を表示する際のラベルの設定を
どうするのかっていう問題とか。

792:nobodyさん
12/11/19 23:33:19.08
ビューからモデル見に行くの全然あり、てかそれが正しいMVC
Cakeみたいなフレームワークのビューって結局ただのテンプレートになってることが多くて
それは本来のMVCのビューじゃない

793:nobodyさん
12/11/19 23:35:10.21
>>791
何にでも適用できる原則じゃないけど、そんなラベルの文字列なんかは
ビューに直接書きたくないならヘルパーにスクラッチしとけばいいんじゃないかな?

794:nobodyさん
12/11/19 23:38:05.99
>>792
お、やはりそうなんだ!
>>793
参考にします

795:nobodyさん
12/11/20 00:39:35.43
cookbookのチュートリアルって、MVCを誤解させるよな
誰かもっと良いチュートリアルを作ってくれ(丸投げ

796:nobodyさん
12/11/20 08:42:01.29 ZgN4QSxZ
>>792
Viewの中でModel使われると鬱陶しいんだよね

797:nobodyさん
12/11/20 11:14:41.40
Viewには出来るだけPHPコード書きたくないけど、実際は難しいよね
CSSやJavascriptを挿入するだけでも書かなくちゃいけないし

798:nobodyさん
12/11/20 11:53:01.37
もしかして、ctpをそのまま使ってんの?
何か見やすいテンプレートエンジン使えばいいのに

799:nobodyさん
12/11/20 12:33:19.62
>>796
鬱陶しいのはなぜ?

800:nobodyさん
12/11/20 12:44:03.10
ひょっとして、PHPのコードをビューに書きまくるからじゃない?
ヘルパー作って、呼び出すだけにすればいいのに

801:nobodyさん
12/11/20 15:30:08.51
さすがに一覧表示とかforeach使って書くだろ?
中のループはヘルパー使ってもさ。
同様に、ifを使う箇所も出てくると思うよ。これもヘルパーじゃ無理だ

802:nobodyさん
12/11/20 15:38:31.06
そこでテンプレートエンジンですよ
foreachもifも必要なくなる(というか使えない

803:nobodyさん
12/11/20 17:17:49.98
俺はテンプレートエンジンってSmartyぐらいしか知らないけど
普通にIfとかforeachとか使ってた気が・・・
今はどんなのがあるの?

804:nobodyさん
12/11/20 17:38:27.57
Smartyしか知らないって、全然知らないってことじゃん
この機に調べてみ

805:nobodyさん
12/11/20 17:55:21.76
シンプルさを訴求するという大義名分があるせいで
その弊害を語られることが少ない気がするが、
Modelとデータベースってのは本来別の次元の話なのに
両者が強力にくっついてしまっているのって結構問題だよな。

806:nobodyさん
12/11/20 20:35:24.50
個人的に、テンプレートエンジンのソースとPHPと大差ないと思うんだが。
少なくともプログラム知識皆無の奴が使えるものじゃないだろ

807:nobodyさん
12/11/21 00:21:54.19
>>806
だよね。
phpの書き方覚えるのとテンプレートの書き方覚えるのだったら、汎用的に使えて速いphpの書き方覚えた方が良いような

808:nobodyさん
12/11/21 00:27:56.23
でもPHP全然わからんデザイナに振れるのは大きい

809:nobodyさん
12/11/21 00:59:56.41
分業の為だよね。基本的には

810:nobodyさん
12/11/21 01:04:16.32
PHP全然分からんデザイナーがテンプレートエンジンの書き方は覚えるのか。
それならPHPも分かるよね?って思うんだが。Smartyとか。

811:nobodyさん
12/11/21 01:07:57.98
いや全然違うだろ
同じだと思ってるの?

812:nobodyさん
12/11/21 01:08:59.64
エラーをトラップして適切な処理付けて行ったら、結局テンプレートエンジンになるんじゃない?

813:nobodyさん
12/11/21 01:12:19.26
>>810
お前らって本当にSmartyしか知らないんだな
あれって全然デザイナにわかりやすくなってないじゃん
あれ基準に語るな

814:nobodyさん
12/11/21 01:37:17.56
ならデザイナーが容易に利用できるテンプレートエンジンを上げてから語れよ
調べて見つかったのがお前が言ってるのと同じとも限らないんだし

815:nobodyさん
12/11/21 02:27:58.22
自分で例も出さずに使いづらいって何様だよw

816:nobodyさん
12/11/21 04:13:16.87
何で知らない奴が偉そうに書き込んでんだよ
土下座したら教えてやってもいいはw

817:nobodyさん
12/11/21 08:43:21.33
>>815
お前は何を言ってるんだ?
PHPもSmartyもソース書くレベルとしては一緒だろ?って話で、
反対意見は、デザイナーから見たら全く別物のテンプレートあんだよ、探せ
って言ってるののどこに使いづらいとか読めてんの?
で、例って何?ソースレベルで提示しろって言ってんの?あほかw

818:nobodyさん
12/11/21 10:44:18.07
土下座するので、おすすめのテンプレートエンジン教えてください。
Smarty以外で。お願いします。

819:nobodyさん
12/11/21 11:53:52.96
>>817
はいはい。言い訳は良いからお前が良いと思うテンプレートエンジン書けよ。
どうせ何か言っても批判されると思ってるんだろ?お前みたいな奴からw

820:nobodyさん
12/11/21 13:07:59.14
>>815>>819が何を言ってるか本気で理解できないので誰か翻訳よろ

821:nobodyさん
12/11/21 13:51:31.70 qWxhErew
>>805
良いこと言った!

822:nobodyさん
12/11/21 15:15:54.46
>>820
頭悪いの?「自分がおすすめするテンプレートエンジン書けよ」ってだけだろ。
なぜか>>818は無視してるし。

823:nobodyさん
12/11/21 15:40:01.76
デザイナーから見たら全く別物のテンプレートエンジンねえ
制御構文なども皆無なのかな?
単に変数に値を流し込むだけ?
もうそんなデザイナークビにしていい時代だろ

824:nobodyさん
12/11/21 15:52:49.74
>>822
>>802>>804>>808>>811>>813>>815>>816が同一人物のように見えた。
たぶん>>815はこっち(PHPもSmartyもデザイナーが扱うなら同じレベルと思ってる)側。
たぶん>>817もこっち側。
双方が相手を>>804側と思ってるから話がかみ合ってないんじゃないかな。

結論、お前ら安価省略するな。
で、>>804>>819が図星でなんだかんだいって具体的なその他のテンプレートエンジンを
出せないだけだからこれ以上議論するのも無駄。

Cakeの話題に戻ろうぜ。

825:nobodyさん
12/11/21 16:17:33.37
以前にもこんな流れあったな
Smarty厨が出てきて騒いでた、内容は忘れたが

826:nobodyさん
12/11/21 16:24:06.37
横だが、俺には>>824の言ってることがわからない
俺が見た感じ、

A派:
テンプレートエンジン=Smartyしか知らない、デザイナにもPHPの知識要求されると主張

B派:
テンプレートエンジンは他にもあって、ビューにPHPのコード書かなくても良くなると主張

この2派が喧嘩してるって事じゃないのか?

827:nobodyさん
12/11/21 18:06:37.46 XVcRCAEI
cakephp2 使っているんですけどajax用のメソッドを定義する場合でも
Viewファイルは用意しないとやはり駄目なのでしょうか?

public function download()
{
if( $this->request->is( 'ajax' ) )
{
echo "ajax transaction<br>";
}
else
{
echo "not ajax transaction<br>";
}
}

828:nobodyさん
12/11/21 18:30:32.75
>>826
それでB派に、「ならオススメ教えてよ」って聞いてるのに
一向にオススメを言わないから「どうして?」ってなってるんだよ。

なぜここまでSmarty以外のテンプレートエンジン書かないか分からん。
ちなみに俺はテンプレートエンジンなんかイラねのC派ですw

829:nobodyさん
12/11/21 18:39:56.49
態度が気に入らないからじゃないの

830:nobodyさん
12/11/21 18:48:57.07 XVcRCAEI
画面上に【ダウンロード】ボタンを設けており、
それがクリックされると、AjaxにてcakePHP上のコントロールが呼び出され

そのダウンロードが完了したら、それをユーザのローカルに保存させたいのですがどうすれば良いでしょうか?

success: function( data, textStatus, jqXHR )
{
  var gotten_data = $.parseJSON( data );   ← ここまではOK

  //次にどういうコードを書けば xxx.csv としてファイルをユーザに保存させる事が出来るのか分かりません。

}

831:nobodyさん
12/11/21 18:51:02.50
>>830
Cake関係無いじゃん

832:nobodyさん
12/11/21 19:05:33.59 XVcRCAEI
>>831
JavaScriptで取得するところまでは出来ました。
JavaScriptスレに移動します。

833:nobodyさん
12/11/21 20:23:19.60
前質問した奴と同じか?一体何がしたいんだw

834:nobodyさん
12/11/21 20:24:02.20
ワロタ

835:nobodyさん
12/11/21 20:39:23.74
なぜ2行目は全角にしているのか聞きたいw

836:nobodyさん
12/11/22 00:20:17.31
>>832
サーバーサイド、クライアントサイドを意識して勉強する必要があると思うよ。
PHP(CakePHP)はサーバーサイドで、httpを利用してクライアントの要求を受けてhtml、css、javascriptコード等を返す
クライアント(ブラウザ)はhtmlを利用してDOMを構築し、javascriptコードに従ってDOM操作したりする

837:nobodyさん
12/11/22 00:54:33.93
質問の意味がわからないので、もっと説明能力付けたらいいかもね
どうしたらいいのかわからないけど

838:nobodyさん
12/11/22 02:21:35.33
国語をしっかりやっておけばプログラミング能力は自ずとついてくるよ。
まずは小学校の国語の教科書を繰り返し音読するところから
始めたほうがいいんじゃないかな?

839:nobodyさん
12/11/22 02:49:50.55
そもそもデザイナーにビューなんか作らせるな。
ビューを作るのはプログラマの仕事だろうが。
前提が間違ってんだよ馬鹿が。
デザイナーが作るのはあくまで純粋なHTMLで
それをプログラマがビュー化するの。

840:nobodyさん
12/11/22 02:54:10.14
↑ばか

841:nobodyさん
12/11/22 08:03:15.90
>>839
純粋なHTMLに近いものが、そのままビューとして使えたら
便利だと思わないか

842:nobodyさん
12/11/22 10:08:55.09
>>841
不可能だろ。どう考えても独自タグ埋め込むだろうが

843:nobodyさん
12/11/22 10:23:04.12
PHP用の記述をHTMLのコメントとして埋め込むから、普通にHTMLとして作れるやり方があるよ
詳しくは忘れたからぐぐれ

844:nobodyさん
12/11/22 10:45:03.85
だから、それも言い換えれば独自コードな分けだろ?
そういう独自の仕様を覚える必要あるじゃん

845:nobodyさん
12/11/22 11:17:57.44
>>839
そもそもPGにビューなんか作らせるな。
ビューを作るのはデザイナーの仕事だろうが。
前提が間違ってんだよ馬鹿が。
PGが作るのはあくまでビューに値を受け渡すロジックで
それをデザイナーが受け渡された値を含めてビュー化するの。

と改変しても全く違和感無いんですけどw

846:nobodyさん
12/11/22 11:38:19.82
普通になるほど!と思って読んだら
なんだネタかw

847:nobodyさん
12/11/22 11:39:30.11
>>844
デザイナーは覚えなくて良いのがミソ

848:nobodyさん
12/11/22 11:53:05.02
WebデザイナーならJavascript扱えるだろうからPHPなんて余裕だろ
htmlしか書けない?ただのコーダーじゃねえか

849:nobodyさん
12/11/22 11:56:51.75
Cakeでrssを出す方法がよくわからないんだけど
いい解説サイト知らない?
特にrssのURLをいじりたい場合がわからない
routes.phpに普通に書けばいいの?ちょっと試したら効かないみたいなんだけど

850:nobodyさん
12/11/22 11:57:36.88
デザがjsを普通に遣えるレベルだとプログラマなんて要らないと思うのだが

851:nobodyさん
12/11/22 12:00:26.67
JS使えるデザなんて見たことないは

852:nobodyさん
12/11/22 12:01:07.41
jsとかphpとかに手を出したがるデザが多くて困る
だからテンプレートエンジン導入して閉じ込めとくのはアリ

853:nobodyさん
12/11/22 12:04:21.25
ビューにごちゃごちゃコード書いてると、デザが何かいじった際にぶっ壊してくれることはよくある

854:nobodyさん
12/11/22 12:23:12.67
なんで奴ら<?php } ?>を勝手に消すん
それがないと動かなくなんだよ!

855:nobodyさん
12/11/22 12:29:46.62 HdPktOip
>>854
そんな書き方してるお前が悪い

856:nobodyさん
12/11/22 12:31:57.85
endif;
endforeach;
endfor;
のがましかな

857:nobodyさん
12/11/22 12:36:27.04
どう書いたってぶっ壊される時はぶっ壊される
奴らPHPわかんないんだもん

858:nobodyさん
12/11/22 13:33:28.29
>>849
キーワード
php cakeresponse rss

859:nobodyさん
12/11/22 13:35:16.84
あ、キーワード間違えた
cakephp cakeresponse rss

860:nobodyさん
12/11/22 13:59:19.29
俺も普通に>>854って書いてるわ。
>>856にするべきなの?

861:nobodyさん
12/11/22 14:01:01.79
>>860
>>857

862:nobodyさん
12/11/22 14:02:27.07
DW使ってるとPHPのコードは色づけされるんだけどなぁ

863:nobodyさん
12/11/22 14:07:47.49
拡張子がctpだとしてくれないとか?

864:nobodyさん
12/11/22 14:11:53.42
ビューをデザイナーなんかにいじらせるから壊されんだよ。
ということは、バージョン管理ツール使わせるわけだから
eclipseとかも使わせるのか?
その上Smartyとか覚えさせられて大変だなw

865:nobodyさん
12/11/22 14:14:52.90
じゃあ誰がビューをいじればいいの?
プログラム関係ない蔵からの文言修正やレイアウト変更依頼に
プログラマがいちいち対応すんの?

866:nobodyさん
12/11/22 14:17:22.95
デザイナーとプログラマーの間にもう一つ職種が必要なんじゃね?

867:nobodyさん
12/11/22 14:33:55.02
有料のテーマを買って、それを元にビュー作ったんだけど、
この作業って結構知識いるし作業量もハンパない。
何かの片手間で出来るものじゃないわ

868:nobodyさん
12/11/22 14:38:02.33
かと言って別の人間が間に入るとよりコミュニケーションに齟齬がでそう

869:nobodyさん
12/11/22 14:39:34.85
それこそコーダーって職業じゃないのか?

870:nobodyさん
12/11/22 14:43:55.66
そうだけど、別にデザイナーのスキルは必要じゃない

デザイナーはとにかく良いUIを作ることにのみ専念してくれればいい

871:nobodyさん
12/11/22 15:12:44.35
何でビューごときに専門の人間が必要なんだよ。
そのくらいプログラマがやれよ。
ちょっとした文言変更も、レイアウト変更も
プログラマがやるんだよ。数分でできるだろうが。

872:nobodyさん
12/11/22 15:17:12.64
お前プログラマじゃないだろ、なんでここにいるんだよ
できるできないの問題じゃない
数分でできることを全部プログラマにやらせてたら回らなくなるだろ

873:nobodyさん
12/11/22 15:48:56.68
俺はプログラマだかデザイナーにはソースを触られたくないね。
ビューもプログラムソースだから。
そんな大切なソースを大した作業ではない
文言変更や
そんなに頻繁に発生することのないレイアウト変更をやりたくないからという
職業怠慢な理由でデザイナーに解放しちゃうなんてどうかしてるぜ。
お前こそ本当にデザイナーか?

874:nobodyさん
12/11/22 15:51:27.11
×お前こそ本当にデザイナーか?
●お前こそ本当にプログラマか?

875:nobodyさん
12/11/22 15:53:02.43
怠慢じゃなくて、プログラマはプログラムを書くことにリソース割かないと、プロジェクトが滞るだろ
仕事したことのないお子様か?

876:nobodyさん
12/11/22 15:58:50.80 zHRu897d
仕事ではC#使うけど
趣味サイトではPHP一択だな。

877:nobodyさん
12/11/22 16:02:17.83
プログラマ様が全部やれば解決するお
でもそうなっても技術のグラデーションの中で貶め合って憎しみ合い続けるお^^

878:nobodyさん
12/11/22 16:03:21.55
そうなんだよ、中途半端に仕事の範囲を増やすと後で収集がつかなくなる
それはプログラマ、デザイナどちらの立場からしても言えること。

でもそうすると、両者を取り持つ仕事というならプロマネがやることになるのか
それはそれで笑えるなw

879:nobodyさん
12/11/22 16:05:54.24
実際の仕事場では、手のあいてる方がやることになるな
技術系の会社だと、プログラマは大抵常に忙しいから、なるべく雑用やらせたくはない

880:nobodyさん
12/11/22 17:19:30.94
お前らマジでビューをデザイナーに解放してるの?ネタだろ?
うーん。やっぱPHPerってレベル低いのかなぁ。

881:nobodyさん
12/11/22 17:39:29.80
そこでなんで「俺っちはPHPなんて程度の低い言語使いませんから^^」
って主張をはじめちゃったの???

882:nobodyさん
12/11/22 18:18:16.62
プログラム、デザイン、どっちかしかやらない、できない、なんて人間は既に仕事干されてるだろうからどうでもよくね?
で、>>873はほぼ感情論でしか物事を語ってないけど、本当にプログラマーか?
よくわからん新たな論点を持ち出してきたり、感覚で喋ってるのは、どうみてもデザイナー側の人間に見えるんだが。
PHP関係ないじゃん。その理屈で言えば他の言語の例えばJavaやらFlashやらならデザイナーとプログラマーで
納品物の管理が完全に分離できるのか?
というか、なんでお前このスレにいんのw?

883:nobodyさん
12/11/22 19:27:33.06 zHRu897d
ちょっとお前らに質問です。

画面上のダウンロードボタンを押すと、Ajaxでサーバ再度のControllerが呼ばれて


www/hoge-directory/jiojoijiajsdwfijjasdfajsdfiwerfjai/hoge.csv

という風に   ハッシュで生成したディレクトリ + ファイル名 をPHP側で生成して
JavaScriptをつかって、WEBページ内にリンクを作成しています。


この時、基本認証とか何も無くリンクを貼っているのですが(ハッシュ値)
を当てられる確率が低いからと、、、、

然程クリティカルなデータではないのですが
この状態だsと不味いでしょうか?

884:nobodyさん
12/11/22 19:40:16.81
>>883
Cake関係無いじゃん

885:nobodyさん
12/11/22 19:42:44.76
PHP使わないなんて何処にも書いてないのにね。
プログラマーだって書いてるのにね。
脳内変換しまくりw
感情で書いてるのお前じゃん。
例えビューであってもデザイナーにソースを渡しちゃうような奴は
エンジニア失格だよ。
デザイナーにPHPのコード消されたとか嘆いてんなよ。
ソースを渡したお前が悪い。

886:nobodyさん
12/11/22 19:43:33.19
大して重要なデータじゃなけりゃいいんじゃない?
気になるならcookieのユニークな値も
チェックできるようにすればいいんじゃないの?

887:nobodyさん
12/11/22 19:58:12.39 zHRu897d
>>884
死ね

>>886
あー成るほど!!いいアイデアですね!!

ダウンロードボタンを押したタイミングでそのハッシュ値をcookieにセットし
それを持ってるユーザのみ、そのcookieにセットしたハッシュを使用してファイルにアクセス可能にしてしまえばいいですね!!

888:nobodyさん
12/11/22 20:07:47.68
ロクなの来ないなこのスレ

889:nobodyさん
12/11/22 22:05:17.04
ロックな奴ばかりが来るよ

890:nobodyさん
12/11/22 22:16:57.37
論破されたら「ロクな奴来ない」とか。

891:nobodyさん
12/11/22 22:19:25.10
論破って?
マジ話通じねえな

892:nobodyさん
12/11/22 22:22:45.33
たまに開いて「みんな病んでんなー」と確認して閉じるスレ

893:nobodyさん
12/11/22 22:24:38.60
ていうか、荒らされてるんじゃね?
荒らしはCake関係ない話しかしないし
でも何でこのスレなんだろ、まあ荒らしでも来ないと過疎るけど

894:nobodyさん
12/11/22 22:29:43.43
>>882
君プログラミングもデザインも両方できるの?すごいねぇ。マジで。
でも両方できないと仕事ができないとかなんでそんな考えに至ったの?
普通エンジニアはデザインとかやらないんだが。
HTMLやCSSを多少触ることはあるがあくまでも微調整だし。
小さい制作会社とかだとそうなのか?

895:nobodyさん
12/11/22 22:55:36.23
>>894
こいつあれだわ、大きな会社に時々いる、
外の情報を吸収しないで頭カチコチのエンジニアだ
ずっとウォーターフォールで同じ仕事こなしてるだけなんだろ?
まあ意味のない論争はやめて、Cakeの話をしようぜ

896:nobodyさん
12/11/22 23:09:31.89 zHRu897d
深夜に2chでcakeの話してるやつらって・・・

友達いないんだろうな。

897:nobodyさん
12/11/22 23:11:42.38
とにかくAjax質問君も感情論でプログラマに押しつけ君も、もう来ないでくれ
ここはCakeスレだ

898:nobodyさん
12/11/22 23:12:28.94
>>896
いいからお前は死ねw

899:nobodyさん
12/11/22 23:34:18.10
>>895
否定しないところをみると図星か。
大きい会社=ウォーターフォール&最新の技術を知ろうとしないとか
凄い妄想するねぇw
ところで君CakePHP使ってるから自分は最先端の技術者だとでも思ってるのか?
少しは外の世界を見てみろよ。
お前なんか箸にも棒にもかからないただの雑魚プログラマだから。

900:nobodyさん
12/11/23 01:30:52.14
連休前なのにお前らといったら(;_;)

901:nobodyさん
12/11/23 06:59:30.97
テンプレートエンジンガー
ビューはプログラマーガー
デザイナーはデザイン以外の知識や作業は全く必要ないんジャー
俺が作ったプログラムのソースは誰にも触らせないんジャー

は全部同一人物だろ?こんなスレでこんなんが複数人もいるとか思えん。
ajax君含めてくだ質から出てくるなよな?
ここはCakeスレだ、スレタイを100万回読み直して理解しろ。
それでも書き込みなら周りに迷惑だからコテつけて周りがあぼーんできるようにしとけ。

902:nobodyさん
12/11/23 08:00:03.51
連休前だから何なんだ

903:nobodyさん
12/11/23 09:40:58.31
CakePHP始めて三日目、なんとかなりそうな感じ。
最近PHP書き始めて本にあったPEARとSmartyへと進む予定だったけど
フレームワークを調べて検討した結果、CakePHPを選ぶことになりました。

ドキュメント読み漁って昨夜のControllerから別のModelを扱う辺りが山場だった。
インストールでローカルとリモート環境を揃えるのも今思えばいい思い出。
これまで書いた分を乗せ換えて開発を続けます。
CakePHPは面白い。

904:nobodyさん
12/11/23 13:36:11.46
ChirashiNoUragamiPluginでも開発してみればいいと思うよ

905:nobodyさん
12/11/24 22:30:49.17
Rubyを勉強せずにRailsを勉強したくてCake使ってたけどどうしてもエレガントさに欠けるところが納得できなかった。
というわけでYiiの方に旅立ちます。
短い間でしたがお世話になりました。

906:nobodyさん
12/11/25 11:23:54.32
Yii行くくらいならFuelPHPにした方がいいのに

907:nobodyさん
12/11/25 12:32:02.23
Rubyを勉強せずにRailsを勉強したくてCake使おうとしたことが
そもそもエレガントじゃない件

908:nobodyさん
12/11/25 21:05:11.72
未だにCake使ってる奴に言われたくねぇw

909:nobodyさん
12/11/25 21:18:55.57
あーうん
RailsがRubyのフレームワークってことも理解できず、
何故かPHPで学ぼうとする馬鹿は、何の言語使っても一緒じゃないかな

910:nobodyさん
12/11/25 23:43:17.15
とりあえず他の言語の話題出して無理矢理煽るのは止めてくれ

911:nobodyさん
12/11/26 01:28:55.42
>RailsがRubyのフレームワークってことも理解できず、
>何故かPHPで学ぼうとする馬鹿

PHPにRailsをパクったフレームワークがCakeあって、
自分はPHPを知っててRubyは知らない
という前提があるんだがそこまで書かないと分からないか。
アホは一から十まで説明しないと分からないから困るw

912:nobodyさん
12/11/26 01:43:16.98
やべぇ

913:nobodyさん
12/11/26 02:56:24.43
(Ruby知らないのにRails学んでどうするんだろう・・・・)

914:nobodyさん
12/11/26 04:03:25.39
目的が一般庶民と逆みたいなので、あなたはフレームワークの研究家か
なんか何でしょうが、Railsの勉強がしたいならRailsをやればいいのにと。

915:nobodyさん
12/11/26 13:37:52.33
(旅立ったハズなのに舞い戻ってきてる…だと…)

916:nobodyさん
12/11/27 01:44:47.88
Cake2.xでrssがどうしてもうまく出せない
公式のチュートリアルも駄目だしぐぐっても駄目だし、誰か動くコードの例を教えて

917:nobodyさん
12/11/27 02:09:45.95
甘えるなボケ
外注なげろ

918:nobodyさん
12/11/27 02:40:44.87
つーかCakeのコンポーネントが糞なんだろこれ
自分で組むからいいわもう、時間の無駄

919:nobodyさん
12/11/27 03:05:04.31
>>916
え?どこで躓いてるの?
やったことと結果と期待してるものをそれぞれ書いてみなよ

920:nobodyさん
12/11/27 03:07:06.97
まさかヘッダの送出で躓いてんのか?

921:nobodyさん
12/11/27 16:54:33.07
理由がわかってなんとか動くようにできた
itemのguidを省略すると、Cakeが勝手にURLか何か付けて、それがユニークじゃないから
RSSリーダー側で表示がおかしくなってたみたいだ
guidは必須ではなく付けるならユニークでなくてはならないのに、Cakeがそれを無視してる

922:nobodyさん
12/11/27 18:39:22.56
Cake2の情報の少なさはどうにかならんの
1.2>1.3>2.x みたいになってる
衰退してんの?

923:nobodyさん
12/11/27 18:55:21.49
新参が減ったからだろ普通は英語ドキュメント読めば事足りるし

924:nobodyさん
12/11/27 23:13:21.68
素のPHPプログラミングで出来て、CakePHPで出来ない事ってありますか?

925:nobodyさん
12/11/28 02:15:13.08
パフォーマンス抜きで語るなら無いよ

926:nobodyさん
12/11/28 02:16:05.69
あとついでに言うと、CakePHPでできて素のPHPで出来ないこともない


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch