[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 07/21 16:39 / Filesize : 152 KB / Number-of Response : 662
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【PHP】フレームワーク CakePHP 5ホール目【v1.2】



1 名前:nobodyさん [2008/12/19(金) 15:52:19 ID:ylogT+7c]
■本家
www.cakephp.org/
APIドキュメント
api.cakephp.org/
cookbook(マニュアル)
book.cakephp.org/ja
the Bakery
bakery.cakephp.org/

■日本語フォーラム
cakephp.jp/


■過去スレ
【PHP】フレームワーク CakePHP 4ホール目【v1.2】
pc11.2ch.net/test/read.cgi/php/1213892680/
【PHP】フレームワーク CakePHP 3ホール目【本命】
pc11.2ch.net/test/read.cgi/php/1205475360/
【PHP】フレームワーク CakePHP 2ホール目
pc11.2ch.net/test/read.cgi/php/1194976228/
【PHP】フレームワーク CakePHP
pc11.2ch.net/test/read.cgi/php/1163850802/


543 名前:nobodyさん mailto:sage [2009/01/31(土) 09:38:59 ID:???]
にしてもプログラマーと呼べないレベルの質問が多すぎる


544 名前:nobodyさん mailto:sage [2009/01/31(土) 09:47:48 ID:???]
そろそろsymfonyの時代か・・・?

545 名前:nobodyさん mailto:sage [2009/01/31(土) 10:44:44 ID:???]
それでも作れちゃうなら凄いこと

546 名前:nobodyさん mailto:sage [2009/01/31(土) 10:46:19 ID:???]
そんなレベルの人が正しくフレームワークを使いこなせてるとは思えない
保守不可能なシステムを作ってそう

547 名前:nobodyさん mailto:sage [2009/01/31(土) 11:16:37 ID:???]
Web屋と呼べないレベルではあるが
exe屋だったら最初そんなもんだろ。
まあ、フレームワーク知識自慢しかできないようじゃ、
お前らすぐに抜かれるよ。

548 名前:nobodyさん mailto:sage [2009/01/31(土) 13:50:46 ID:???]
>>529
自作クラスなんてコンポーネントにしちゃえばいいよ。
で、コントローラーで
$this->Myclass->eat('hoge');

で。

>>535
作り方としてデータを渡したいような内容のものがあるならモデルに書いた方がいい。
で、コントローラーからそのモデルのアクションを読み出してデータを取得。

549 名前:nobodyさん [2009/01/31(土) 16:13:14 ID:x6QrlarV]
authcompornentでユーザ登録した後、自動的にログイン状態に遷移する処理について
なにか方法があれば教えていただけませんでしょうか?

550 名前:nobodyさん mailto:sage [2009/01/31(土) 16:23:21 ID:???]
マニュアルを読め

551 名前:nobodyさん mailto:sage [2009/01/31(土) 17:40:26 ID:???]
データが全然こなくて小一時間悩んでたけどconditionsて書く所がconditonsになってた〜 時間返せー



552 名前:nobodyさん mailto:sage [2009/01/31(土) 17:50:06 ID:???]
色々読んでみたが、結局趣味でやるぶんにはイイFWってことか

553 名前:nobodyさん mailto:sage [2009/01/31(土) 18:44:40 ID:???]
>>551
あるあるwwww
JavaScriptでもundefinedとunidentifiedをよく間違えるんだよな

554 名前:nobodyさん mailto:sage [2009/01/31(土) 18:55:23 ID:???]
配列仕様だからそういうミスしても分からないんだよね
なにかあるたびに配列にミスが無いかチェックしてるわ

555 名前:nobodyさん mailto:sage [2009/01/31(土) 19:10:10 ID:???]
よく使うやつはテキストエディタの強調表示設定に入れておくのが吉

556 名前:nobodyさん mailto:sage [2009/01/31(土) 19:38:57 ID:???]
symfonyを採用したオープンソースのSNS OpenPNE3.0が1/27にリリースされたそうな。
ttp://www.openpne.jp/archives/1117/
と言う事は、OpenPNE3.0はPHP4のサーバにはインストール出来ないと言うことか?
多くのアプリがPHP4で開発されたもので、PHP5での稼働が保証されていないので、
サーバのPHPを5に出来ないんだよな。

557 名前:nobodyさん mailto:sage [2009/01/31(土) 21:24:40 ID:???]
>>548
モデルAとモデルBで、一応形としては
A hasMany B
B blongTo A
なんだけど、普段必要になるのは、Bのうちnot deleteのフラグが立ってる
1つのデータだけなのよ。そして、まれに(not delete関係なく)全ての
データが必要になる。これをどう扱ったら良い?

A hasOne B
にしても、BにA_idというフィールドが必要なだけに、こちらが望む
通りに紐付けするには条件(not delete=true)が足りない気がするし、
SQLの実行に時間や負担がかからないか心配だし、汎用性がどうか?

Bのデータをidで直接呼び出した方が早いような気がしたので・・・
Aに、not deleteに当るBのデータのidを入れるフィールドを作っていて、
AのコントローラでBのモデルも扱ってread(Bのid)ってするつもりだった。
だけど、このやり方って変?

558 名前:nobodyさん mailto:sage [2009/01/31(土) 21:53:45 ID:???]
>>557
ゆとりなの?死ぬの?

こんな風に A のモデル書いて
class A extends AppModel
{
var $hasMany = array('B' => array(
'className' => 'B',
'conditions' => array('B.delete' = 'not delete'),
),);

function hogehoge()
{
unset($this->hasMany['B']['conditions']['B.delete']);
return $this->find('all');
}
}

で、普段はコントローラから $this->A->find() でデータ取得して、
B.delete を無視する時は $this->A->hogehoge() 使うようにするだろう。jk


559 名前:nobodyさん mailto:sage [2009/01/31(土) 23:42:40 ID:???]
コントローラーから別のコントローラーに値を渡す方法と言われて、セッションとかそういう話じゃなかったことしかないな

560 名前:nobodyさん mailto:sage [2009/02/01(日) 01:12:20 ID:???]
質問です。

$data = array(
array(
'User' => array('id' => 1, 'name' => 'suzuki'),
'Tag' => array(
array('id' => 1, 'title' => 'hoge'),
array('id' => 2, 'name' => 'fuga')
),
),
array(
'User' => array('id' => 2, 'name' => 'sato'),
'Tag' => array(
array('id' => 1, 'name' => 'piyo'),
array('id' => 3, 'name' => 'moge')
)
)
);
$result = Set::extract('/Tag[id=1]/..', $data);
debug($result);

このとき$resultには、結果的に$dataと同じデータが入ると思うんですが、
「Notice (8): Undefined offset: 1 [CORE/cake/libs/set.php, line 415]」
というエラーが出て、2つめのデータが表示されません。何が原因なのでしょうか?

561 名前:560 mailto:sage [2009/02/01(日) 01:26:07 ID:???]
すみません、追記です。
PHPのバージョンは5.2.8、CakePHPのバージョンは1.2.1.8004です。

あと「array('id' => 1, 'name' => 'piyo'),」は、
「array('id' => 1, 'title' => 'hoge'),」とした方が自然ですね。


よろしくお願いします。



562 名前:nobodyさん mailto:sage [2009/02/01(日) 22:33:35 ID:???]
>>560
よくわからんけど。
Tagの添字のID=1が二つあるからじゃね?
それ以外の条件での検索については、エラーは出ないし。


563 名前:nobodyさん mailto:sage [2009/02/01(日) 22:46:30 ID:???]
ちょっと複雑?なアソシエーションについて教えて。
基本は A hasMany B , B belongTo A なんだけど、
AとBは hasAndBelongToMany でもある。
(Aが担当教員で、Bが生徒と思えば。
Aの中に担任が一人居るような感じ。)
belongTo のAと、hasAndBelongToManyのAsを
どうやって取得し分けたらいい?


564 名前:nobodyさん mailto:sage [2009/02/02(月) 01:23:57 ID:???]
>>563
アソシエーションのbindとunbindを使い分ければいいんじゃない?

565 名前:nobodyさん [2009/02/02(月) 05:46:05 ID:lBmCzdKa]
1.2でpaginatorを1画面に複数使う方法が書いてあった
blog、どこにあったか知ってるひといたら教えてプリーズ

あとで見ようとしててどっかにいってしまいました

566 名前:563 mailto:sage [2009/02/02(月) 15:51:42 ID:???]
>>564
一方を取得したくない時には、それでいけそうです。ありがとう。

だけど逆に、両方取得したい時に困りました。
当たり前かもしれませんが、両方が同じ変数に混ざってしまいます。

[B] => Array
(
[id] => 1
[name] => hoge
[0] => Array
(
[id] => 1
[name] => hoge
[AsB] => Array
(
[id] => 4
[A_id] => 1
[B_id] => 1
)
)
)
これ、どうやって分離する?
もしくは、別々の変数でとり出す方法は?
それとも、そもそもデータベースの設計がおかしい?

567 名前:nobodyさん mailto:sage [2009/02/02(月) 16:28:39 ID:???]
>>566
良くのみこめてないけど、tableに問題がありそうなきがする
teachers , students があるのかな?
classes があればすべて解決するような気がするけど違うのかい?

568 名前:563 mailto:sage [2009/02/02(月) 19:05:21 ID:???]
Authも兼ねるつもりなので、 A hasMany B のAはusersなのです。
だからgroupsも作ってあるけど、classesやgroupsのいずれでも
B blongsTo〜の関係にならないのです。


569 名前:nobodyさん mailto:sage [2009/02/02(月) 19:06:34 ID:???]
www.google.co.jp/trends?q=cakephp%2Cruby+on+rails&ctab=0&geo=all&geor=all&date=all&sort=0

逆転しそう

570 名前:nobodyさん mailto:sage [2009/02/02(月) 19:55:59 ID:???]
>>568
いやいやそういうこっちゃないでしょ

もっと具体的に書いてみたらどうよ。
「A hasMany B , B belongTo A なんだけど、 AとBは hasAndBelongToMany でもある」って言われてもねえ
関係するModelと、そこで使われているアソシエーションの内容を、具体的にたのむ

571 名前:nobodyさん mailto:sage [2009/02/02(月) 20:48:11 ID:???]
>>569
これってGoogleでの検索件数のトレンドグラフだよねえ。
CakePHPは色々と問題が多くて、その解決法を探す為にみんなせってと「CakePHP」
キーワードで検索をしている。だから最近検索件数がウナギ登りなんだ。
と言う見方もあるのかなあ?世間の注目を集める為のCakePHPの戦略では?



572 名前:nobodyさん mailto:sage [2009/02/02(月) 21:19:08 ID:???]
>>566
必要なデータを得られるfindをして、自前で工夫すればいいんじゃないかな

573 名前:563 mailto:sage [2009/02/02(月) 21:22:19 ID:???]
usersテーブル
id
name

personsテーブル
id
name
user_id //これが主たるuser

persons_usersテーブル
id
person_id
user_id //その他のuser

Userモデル
var $hasMany = array('Person' => array('className' => 'Person',
'foreignKey' => 'user_id'));

Personモデル
var $belongsTo = array('User' => array('className' => 'User',
'foreignKey' => 'user_id'));
var $hasAndBelongsToMany = array('User' => array('className' => 'User',
'joinTable' => 'persons_users',
'foreignKey' => 'person_id',
'associationForeignKey' => 'user_id',
'unique' => true));


574 名前:563 mailto:sage [2009/02/02(月) 21:23:10 ID:???]
Personsコントローラ
class PersonsController extends AppController {
function view($id = null) {
$this->set('person', $this->Person->read(null, $id));
debug($this->Person->read(null, $id));
}
}

すると、$person['User']に、>566みたいに、belognsToとhasAndBelongsToManyの
両方のデータが入ってしまう。
['User'][id]
['User'][name]とかは、blongsToのデータ
['User'][0][id]
['User'][0][name]とかはhasAndBelongsToManyのデータだと思う。


575 名前:nobodyさん mailto:sage [2009/02/02(月) 22:34:43 ID:???]

var $hasMany = array('Profile1' =>
array('className' => 'Profile',
'foreignKey' => 'user_id',
),
'Profile2' =>
array('className' => 'Profile',
'foreignKey' => 'user_id',
)
);

576 名前:563 mailto:sage [2009/02/02(月) 22:56:48 ID:???]
>>575
それだ!!うまくいきました!多謝多謝

577 名前:nobodyさん mailto:sage [2009/02/03(火) 09:54:32 ID:???]
モデル間のデータのやり取りや、
一つのモデルで複数のフィールドの
データを操作するのって、どうやるの?
というか、そういうのは奨められない?

あるフィールドにデータが書き込まれたら、
同時に別のフィールドにもデータを書き込みたい。
(DBの設計がそもそも冗長との批判は分かる。)

578 名前:nobodyさん mailto:sage [2009/02/03(火) 10:15:42 ID:???]
>>577
afterSave , afterDelete

579 名前:nobodyさん mailto:sage [2009/02/04(水) 16:42:15 ID:???]
セレクトメニューを作るために、find('list')で配列を取得して、
この配列の先頭に、例えば、
$sel[0]='ここから選んで';
みたいなのを追加するのって、どうする?

array_unshiftだと、IDに当る数字が再割り付けされてしまう。


580 名前:nobodyさん mailto:sage [2009/02/04(水) 17:30:08 ID:???]
formヘルパーのオプション指定にそういう機能が無いかと
配列に直にデータを入れてバリデーションと合わせて簡単にやれないかを検討する

581 名前:nobodyさん mailto:sage [2009/02/04(水) 18:18:31 ID:???]
ポケットリファレンスだと、そもそも
$form->input('sel_id')
の説明が無いんだよなー。
$form->selectにもなさげ。

配列に直にデータ入れて、ksortでできたからいいか。




582 名前:nobodyさん mailto:sage [2009/02/04(水) 18:39:48 ID:???]
>>581 え?
$form->select()だと第5引数showEmptyに文字列指定
調べてないけどinputもいけるはず

583 名前:nobodyさん mailto:sage [2009/02/04(水) 19:26:25 ID:???]
ほんとだ。出来た。
そうだよなー。素人の私でも、出来ないと不便だって思うもんなー。

584 名前:nobodyさん mailto:sage [2009/02/04(水) 23:27:52 ID:???]
ポケットなんとかがどんなもんだか知らないけど、まずマニュアル見ましょうよ。
せっかくCakeは日本語ドキュメントが充実してるんだから。

585 名前:nobodyさん mailto:sage [2009/02/05(木) 00:17:23 ID:???]
うむ・・・おっしゃる通り。結局、Webの日本語マニュアルが一番参考になってる。
これだけでもCakePHPを選んで良かったと思う。
だけど、紙の本で探す方が早い事も多いし、狭い画面でやってるのでwebマニュアル
を開いてる場所が無いのです。
ポケリファの1.2.1対応した改訂版が早く出て欲しい。できれば、Authとか1.2の
新機能をきっちり説明して欲しい。

586 名前:nobodyさん mailto:sage [2009/02/05(木) 00:26:39 ID:???]
1.2stable出たし、各社対応版発売を狙ってるでしょ
逆引き的なのは欲しいなぁ〜

587 名前:582 mailto:sage [2009/02/05(木) 09:29:26 ID:???]
>>584
まずマニュアル見ようというのは同意だけど、マニュアルの記述がまだまだ不完全なのは事実

今回の件であれば
select(string $fieldName, array $options, mixed $selected, array $attributes, boolean $showEmpty)
空の選択オプションを表示したくない場合、$showEmpty を false にします。
と、ある
boolean の引数にテキストを指定するなんて、api.cakephp.org/ でソースを見るしかない
(今回はポケットリファレンス見たというから、つっこんだまで)

588 名前:nobodyさん mailto:sage [2009/02/05(木) 09:35:20 ID:???]
>>581
付け加えると、詰まったら api.cakephp.org/class/form-helper#method-FormHelperselect を見るのが、一番手っ取り早い
こっちは、マニュアルよりは更新早いし、最終的にはソースを追えるし
まあ、がんばってくれ


589 名前:nobodyさん mailto:sage [2009/02/05(木) 17:58:21 ID:???]
findAll で フィールド price か item のどちらかにマッチするというクエリを書く場合って
どうすればいいの?

590 名前:nobodyさん mailto:sage [2009/02/05(木) 18:28:27 ID:???]
>>589

1.2だったら
$this->MODELNAME->find('all',
 array(
  'conditions'=>array(
    'MODELNAME.price' => '2000',
    'MODELNAME.item' => 'ITEM')
 )
);

こんな感じ

591 名前:nobodyさん mailto:sage [2009/02/05(木) 18:29:43 ID:???]
>>590
ありがとう!
その前にMYSQLが日本語ひっかからないという。。。
なんでだろ。
参考になりました。ありがとうございます。



592 名前:589 mailto:sage [2009/02/05(木) 18:34:16 ID:???]
cakephp とは関係ないと思いますけど
$option = array('Faqlist.name LIKE BINARY' => $str);

ってBINARY ってのをつけると 日本語もうまくひっかかるようになります。
今まではちゃんとひっかかってたのに。MYSQLの仕様がかわったのかなー

593 名前:nobodyさん mailto:sage [2009/02/05(木) 18:52:42 ID:???]
>>590
"or"とか入れなくても良いんでしたっけ?

594 名前:nobodyさん mailto:sage [2009/02/05(木) 18:55:11 ID:???]
db側の文字コードがLatin1とかだとBinaryで処理するしかないってことだと思うけどね。

595 名前:nobodyさん mailto:sage [2009/02/06(金) 03:00:32 ID:???]
Model::save()の際に、複製を残したいと思って、
idが空になれば新規保存されるのかな?と思って、
モデルに
function beforeSave() {
unset ($this->data[$this->name]['id']);
return true;
}
と書いてみたが、UPDATEされてしまった。

かといって、
function beforeSave() {
$d = $this->data;
unset ($d[$this->name]['id']);
$this->create();
$this->set($d);
return true;
}
ってしたら、createdの日付が0になってしまった。

何か良い方法無い?


596 名前:nobodyさん [2009/02/06(金) 08:05:18 ID:OIEK7Rhk]
複製を残したいなら二回saveする必要があるんじゃねーか?

597 名前:nobodyさん mailto:sage [2009/02/06(金) 09:38:20 ID:???]
>>595
どのように複製したいのだろうか?
updateだろうがinsertだろうが、同じデータをinsertするということなら
afterSaveで、create後saveすれば良いと思われ
別のDBに保存したいというのならuseDbConfigを変更してsaveかな?

いずれにせよafterSaveじゃないと、validationErrorのときにもsaveされちゃうんじゃないかな

598 名前:nobodyさん mailto:sage [2009/02/06(金) 10:28:16 ID:???]
>>596,597
複製って表現が違ったかもしれん。すまん
「バックアップを残す」って感じ。
既存のデータの編集の際、既存のデータは
そのまま(削除のフラグを立てる)で、
新しいidで保存したい。

すると、afterSaveでは上書きされた後だから
ダメでしょ? そこで、beforeSaveでidを
空にすれば新しいidで保存されるかなと思ったが、
なぜか上書きされてしまった(前者)。
コピーしたデータで書き込んだら、createの
情報が抜けてしまった(後者)。という次第であります。

599 名前:nobodyさん mailto:sage [2009/02/06(金) 10:42:52 ID:???]
>>599
履歴を残すってことね。理解した。
でも、それでもafterSaveだろう
新規のデータをinsertして、afterSaveで既存のデータをupdateする感じじゃないかな
book.cakephp.org/ja/view/76/
beforeSaveはあくまで保存するデータをいじったりするときに使うものだと思うよ
>>597のvalidationErrorのときにもsaveされるは間違いのようだ

600 名前:nobodyさん mailto:sage [2009/02/06(金) 10:53:08 ID:???]
>>599
>新規のデータをinsertして、afterSaveで既存のデータをupdateする
 ↑
この処理はコントローラに書くことになるよね?
どこかで、「ビジネスロジックはモデルに」なんて書いてあったので、
モデルに書く方法を考えてた。(コントローラからは普通にsaveしてる
ように見えるけど、モデルの方でバックアップを残してる、って感じ)
もしくは、モデルに上記の処理をするメソッドを作る方法もある?
Model::save()を上書きしたら・・・さすがにややこしいことになるよな。

601 名前:nobodyさん mailto:sage [2009/02/06(金) 11:04:42 ID:???]
>>600
afterSaveと言ってるくらいだから、Modelでしょーが
おまいさんのいうように、自動的に履歴が残るぞ。
まずは、マニュアル読んでコールバックメソッドを理解するべし



602 名前:nobodyさん mailto:sage [2009/02/06(金) 11:08:14 ID:???]
あ。そうか。ちょっと勉強して、試してみる。

603 名前:nobodyさん mailto:sage [2009/02/06(金) 11:16:38 ID:???]
>>602 Have a nice cooking !

604 名前:nobodyさん mailto:sage [2009/02/06(金) 12:54:05 ID:???]
>>601
「新規のデータをinsertして」もModel??
その後、afterSaveの中でgetIDできるのは
新しい方のデータで、既存のデータのidは
取得できないのでは?


605 名前:nobodyさん [2009/02/06(金) 12:58:50 ID:Fuxx6e9Y]
バリデーションが効かない。助けて下さい。

モデルに追加するだけで動作するよね?

var $validate = array(
'xxx' => array(
'rule' => VALID_NOT_EMPTY,
'message' => '必須項目です。'
)

606 名前:nobodyさん mailto:sage [2009/02/06(金) 13:12:45 ID:???]
>>604
それは、Controller
既存のidについては、自分で工夫してみてくれ。getIDする必要があるとは思えんから

607 名前:nobodyさん mailto:sage [2009/02/06(金) 13:51:55 ID:???]
>>606
ありがとう。わかりました。

いくつかのモデルで同様の処理が有るので、
メソッド作って、AppModelに書いてみました。

608 名前:nobodyさん mailto:sage [2009/02/06(金) 14:27:27 ID:???]
CakePHPってXSSとかSQLINJECTIONに対応してますか?
自分で処理するしかないですあk?

609 名前:nobodyさん mailto:sage [2009/02/06(金) 14:49:58 ID:???]
基本的に処理はされるが、知らずに穴を作ることはできるので、
自分で意識する必要はある。当然だが。

610 名前:nobodyさん mailto:sage [2009/02/06(金) 16:08:24 ID:???]
>>608
XSSやSQLインジェクションの仕組みと対策方法を知っていれば、
おのずと分かる話だと思うが?

611 名前:nobodyさん mailto:sage [2009/02/06(金) 16:17:31 ID:???]
Cakeのセキュリティ関係はあまり信用出来ないけど




612 名前:nobodyさん mailto:sage [2009/02/06(金) 16:32:25 ID:???]
さすがにXSSについては、Helper使わない限りは、自分でh()に通すしかないわな

613 名前:nobodyさん mailto:sage [2009/02/06(金) 16:44:06 ID:???]
Ajaxしてると見落とすこともあるかも。

614 名前:nobodyさん [2009/02/06(金) 22:15:58 ID:OIEK7Rhk]
これってDBにロックかけることってできないの?
BEGINでトランザクション開始
SELECT FOR UPDATEで更新用データ取得と同時にロック
UPDATEでデータ更新
COMMITでトランザクション終了

みたいな感じにしたいんだけど、SELECT FOR UPDATEって
どうやって設定してやったらいいんだ?

615 名前:nobodyさん [2009/02/07(土) 09:27:29 ID:u7AiZVmn]
webrootの.phpファイルからcakeのコントローラを読んで
表示したいのですが、
includeでコントローラが読めませんでした。

viewにすれば解決するのはわかるのですが、
外部からcakeの結果を受けとることって無理なんですかね?

616 名前:nobodyさん mailto:sage [2009/02/07(土) 10:22:18 ID:???]
>>615
(今考えている解決方法がどうやったらできるかじゃなくて)
具体的に今抱えている問題を書き込んだほうが、解決につながりやすいと思うよ

webrootにphpファイルを置くというのは、方向性が間違っている可能性が高い

617 名前:nobodyさん mailto:sage [2009/02/07(土) 18:26:40 ID:???]
複数のモデルデータを保存したい時ってどうやってる?
条件としてはどちらもバリデーション通ったら保存。

バリデーションチェックとその表示との両立が上手くできない。

618 名前:nobodyさん mailto:sage [2009/02/07(土) 18:37:09 ID:???]
>>617
'validate' => 'first' でsaveAll()

book.cakephp.org/ja/view/75/%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E4%BF%9D%E5%AD%98%E3%81%99%E3%82%8B


619 名前:nobodyさん mailto:sage [2009/02/07(土) 19:28:59 ID:???]
>>618
明確な答えをありがとう。
フォームのバリデーションエラー表示も少してこずりましたが試して見ます。
saveAllをネット上の情報で試したんですが、エラー表示がきちんと出なかったんですよね。
フォームヘルパーの指定方法の問題じゃないかと思っていましたが。

taskモデルと、アソシエーションしたTimelineモデル(hasMany)のフォームはこんな感じで書いてます。
echo $form->input('task');
echo $form->input('Timeline.progress');

ちょっと前見たときはsaveAllの説明なかった気がするのは気のせいかな・・。
履歴を見ると気のせいじゃない気もする、今月に入って誰か訳してくれたんだねありがとう訳者さん。

620 名前:nobodyさん [2009/02/07(土) 23:38:50 ID:K4fXwaLQ]
「マニュアル/開発例/ACLを制御するシンプルなアプリケーション」で
User自身が書いたPostのみ編集できて、他人のPostは編集できないようにしたいのですが、
どうしたらいいのかわかりません。><

isAuthorized()とかbeforeFilter()になんかちまちま書くしかないんでしょうか?

例えば、ACL使ってないけど、

function isAuthorized() {
if ($this->Auth->user('username') == 'admin') {
return true;
}

if (!empty($this->params['pass'][0])){ // ユーザー名
if ($this->Auth->user('username') != $this->params['pass'][0]) {
return false;
}
}

return true;
}

こんな感じとか?


621 名前:nobodyさん mailto:sage [2009/02/07(土) 23:48:49 ID:???]
book.cakephp.org/ja/view/171/%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E5%88%B6%E5%BE%A1%E3%83%AA%E3%82%B9%E3%83%88



622 名前:nobodyさん [2009/02/08(日) 00:16:52 ID:XBcxfvCP]
TRPGオタしか喜ばなそうな上記説明を熟読すれば、
「マニュアル/開発例/ACL〜」のサンプルで
id:1のUserのみがuser_id:1のPostを編集できるようにできるんですか?

623 名前:nobodyさん mailto:sage [2009/02/08(日) 01:12:57 ID:???]
>>622
「TRPGオタしか喜ばなそうな上記説明を熟読すれば、」ってことは、
ちゃんと読んでないのか。
マニュアルくらい読めよw

それとも読めないくらい馬鹿なの?ww
もしそうだったらごめんねwww


624 名前:nobodyさん mailto:sage [2009/02/08(日) 02:18:10 ID:???]
>>622
マニュアルの更なる理解のために「指輪物語」を読破するんだw

625 名前:nobodyさん mailto:sage [2009/02/08(日) 02:30:48 ID:???]
formヘルパーで、複数のテキスト入力boxを
1行に並べるのって、どうするの?


626 名前:nobodyさん mailto:sage [2009/02/08(日) 04:45:10 ID:???]
>>625
自分でフォームを書く

627 名前:nobodyさん mailto:sage [2009/02/08(日) 04:56:26 ID:???]
>>626
えっ、マジ?

628 名前:nobodyさん [2009/02/08(日) 11:29:47 ID:XBcxfvCP]
いや、読んだ上で言ってるんだが。。。

これだとテーブル単位では大丈夫だけど、レコード単位での権限の設定が
できないんじゃないかと思うんだが、違うのか?

なんか、ここはレベル低いなぁ。

629 名前:nobodyさん mailto:sage [2009/02/08(日) 11:49:57 ID:???]
その処理は、自分で書くんだよ。
自分が投稿したやつだけ編集できるって。
当たり前だろ。

管理者は全員のものを編集できるかもしれないし、
別に編集者という人を作るかもしれない。

誰が何を編集できるかを決めるのはお前。
よってお前がそういうコードを書く。OK?

レベルが低いのはお前。

630 名前:nobodyさん mailto:sage [2009/02/08(日) 12:03:59 ID:???]
>>625
tableタグ使うと$form->text()を1行に並べること出来るよ。
後は、app/webroot/css/cake.generic.cssの内容を自分の好みに編集するだな。
(でも、なんでCakePHP1.2のdefaultのcssはこんなに変態なのだろ?)

631 名前:nobodyさん mailto:sage [2009/02/08(日) 12:10:49 ID:???]
'div' => 'false' とかで横に並べられた気もするが・・・

> (でも、なんでCakePHP1.2のdefaultのcssはこんなに変態なのだろ?)
同意。デフォルトのフォントの大きさとかマージンとか
各ブラウザの間での違いを吸収する程度にしておけばいいのに。




632 名前:nobodyさん [2009/02/08(日) 12:17:33 ID:XBcxfvCP]
>>629

> その処理は、自分で書くんだよ。

いや、書かなきゃならないのは、最初からわかってるよ。
でも、どこに書けばいいのかがわからない。

isAuthorized()やbeforeFilter()に書くのか?

633 名前:nobodyさん mailto:sage [2009/02/08(日) 12:21:23 ID:???]
チケットを投げるんだ。

Summary: "cake.generic.css" looks like hentai
Type: RFC

634 名前:nobodyさん mailto:sage [2009/02/08(日) 12:23:13 ID:???]
>>632
ご飯から食べるか味噌汁から食べるか。
好きにしろw

635 名前:nobodyさん mailto:sage [2009/02/08(日) 13:06:23 ID:???]
>>631
<?php
echo $form->text('hoge0', array('div' => 'false'));
echo $form->text('hoge1', array('div' => 'false'));
echo $form->text('hoge2', array('div' => 'false'));
?>
これでは縦に3つ並んでしまったが、こんな書き方ではないのかな??

636 名前:nobodyさん mailto:sage [2009/02/08(日) 13:29:45 ID:???]
>>628
レベルが低いのはお前の頭

637 名前:622 [2009/02/08(日) 13:32:48 ID:ByGZ6/FB]
>>632
教えてやるから土下座して「自分の頭の程度が悪うございました」とPCの前で言え

単にACOにmodel,foreign_keyを目的のレコードのものに設定して登録して、
AROとACOの関係を定義するだけ
ACO登録位置は種類考えて適宜選べ

関係の定義とチェック関数については>>622に書かれてる

638 名前:621 [2009/02/08(日) 13:33:26 ID:ByGZ6/FB]
622じゃなくて621だった

639 名前:nobodyさん mailto:sage [2009/02/08(日) 14:40:18 ID:???]
CakePHPで掲示板作れます?

640 名前:nobodyさん mailto:sage [2009/02/08(日) 14:43:20 ID:???]
>>639
お前は何を言っているんだ?

641 名前:nobodyさん mailto:sage [2009/02/08(日) 14:45:17 ID:???]
>>640
質問しているのです。



642 名前:nobodyさん mailto:sage [2009/02/08(日) 15:03:43 ID:???]
>>641
はいはい、ソーデスネ。
次のネタが思いつかないので、マジレスする。
作れます。
以上。



643 名前:nobodyさん mailto:sage [2009/02/08(日) 15:04:30 ID:???]
>>639
ベタのPHPで作るより、短時間で、高機能(Ajaxなど)な掲示板が作れますよ。
がんばってください。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<152KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef