【PHP】フレームワーク CakePHP 19ホール目【v3.3】 [無断転載禁止]©2ch.net
cake2ですが、redirectをカスタマイズする方法ってないですかね?
イメージとしては
$this->redirect(array('controller' => 'Posts', 'action' => 'index'));
function afterRedirect($param)
{
if ($param['action'] == 'index') {
} else {
}
return true;
}
みたいに、リダイレクトのパラメーターによって更に処理を変更したいです。 リダイレクトの役割を理解できてない。その処理はアプリケーションでやるべき。 日本ではなかなかCakeの需要なくならんね…
未だに新規案件の話来る CakePHP 3.6.0 リリース
https://bakery.cakephp.org/2018/04/14/cakephp_360_released.html
deprecation warningsを潰しておけば4.0.0へスムーズにアプデできます webアプリの勉強したくて、この半年、PHPやJavaScriptの入門書をいくつか読んで、いくつか自作したんだけど、
2ちゃんで、「生のPHP書く仕事なんかねえよ。フレームワーク使えるようにならなきゃ話にならん」と
言われたので、調べたら日本ではこのCakeが1位か2位人気のフレームワークだと分かり、
このスレを覗いたんですが、さっそく>>410-411を見て怖くなりました。
いま書店で積んである赤い入門書は、もう時代遅れなんでしょうか?
「いまどきのプログラマーはネットで最新情報を収集してるんだよ。本とか読んでる奴はクズ」という
書き込みも見た記憶があります。
みなさん、どんだけ頭いいんですか? >>412
もちろんFWもコードでできているということはわかっているよな? >>412
確かにほぼ全ての使い方は公式のマニュアルに書いてあるのでそれを見た方が良いです
マニュアルにも載ってない実務的な内容の本だったら買おうと思いますが
フレームワークはあくまでも基本を分かってる人が楽できるものなので、
自分でマニュアルを見て調べられるのはもちろん、いざとなったらフレームワーク自体のソースを読んで、
動作を把握できるくらいの実力がないと駄目です
もちろん最初のとっかかりとして入門書に頼るのはアリだと思いますが、
フレームワークは頻繁にバージョンアップされるので、結局頼りは自分だけです >>412
いくつか自作したなら、ある程度基本は押さえてるでしょ
とりあえず公式サイトのチュートリアルから試してみては?
今のバージョンはすぐに時代遅れになる、とか考えるより、
「FW習得の足掛かり」程度に思って、本も買わずに軽く使ってみると良いと思いますよ
CakeをAWSで使ってるうちに、気がついたらPythonとNode.jsを比べてたり
スマートスピーカーと連動でラズベリーパイを動かしてたりと、飽きることはありません
段階を踏みながら色々と手を出してみるのもまた一興ですよ すみません。
初心者ですが
min(最初のid)をsetして出力したら
こんなのが出てしまいました。
※見てもらえればわかりますが、パスワードとサイトurlは空白です。
名前が平仮名なのに変になっています。
<p>最初のidのデータ:<?php echo $min; ?></p>
↓
最初のidのデータ:{ "id": 1, "name": "\u304d\u3056\u3048\u3082\u3093", "password": "", "mail": "7776655@nifty.com", "siteurl": "" }
こちら平仮名のままの出力はどのようにやるのでしょうか?<(_ _)> $min['name'] でいけました!
配列の中身表示だと変化してしまうのでしょうか? >>416
横から申しわけないけど、あなたの言う、「段階」ってやつを具体的に示してもらえませんか?
公式のチュートリアルからスタートして、最後は「Cake使えます。即戦力になれる自信あります」と
転職活動で言えるのがゴールとしてはどうでしょう。
あなたのレールに従って、ぜんぶやってみたいです。 言語覚えてFW使ってコンテンツ作ってが十分な段階にあたると思うが… お世話になります。
find(all) と find() ってどう違うのでしょうか?
私はcodeigniterはできるのですが
result_array と row_array の違いと同じようなものでしょうか? <(_ _)> >>422
ここで聞いて回答待つより、自分で出力して比べた方が早いと思う
DebugKit入れれば実行されたSQLも見れるし >>419
「Cakeは入り口程度」と書いたつもりなのですが...
「就職活動でCakeアピールがゴール」だと、どんな「段階」を踏んで、
何が出来ればそのゴールに行けるのか、見当もつきません
チュートリアル以降の「段階の踏みかた」は毎週変わるでしょうし、
その時に持っている手練手管や知恵などでもかわるでしょう
私の場合は、
WinServer+SQLServer+VBScript→JavaServlet+PL-SQL+Oracle→Cakeチュートリアル→Cake1.2→Cake2.x→Cake3.x
というのが「段階」だったかなぁ、と感じる程度です
「少しづつ段階を踏んで」という範囲では無さそうですが、
「学習」をしていたなら、手練手管ではなく、豊富なトリビアを抱えていただろうな、と感じます
私はこのスレで>>210とか >>351でテキトーな感じで書き散らしてる人なので、データ設計・DB設計・画面遷移設計が出来るとラクになる、という「聞かされんでも解るわ」程度の事を書きに来るのが関の山です >>426
あなたはプログラムよりもコミュニケーションを学習した方が良いと思います。 開 2 ち ゃ ん ね る= 便 所 の 落 書 き ・ 痰 壷 の 更 に 劣 化 コ ピ ー の 3 流 掲 示 板
運 営 の 性 格 の 悪 い 引 き こ も り I T 土 方 メ ガ ネ ザ ル 早 く 死 な な い か な >>427
>>426は、「学問に王道無し」って書いてるだけだな
学習方法なんざ十人十色ってな まさかcakephpが一番まともだとは思いすらしなかったわ・・・
Phper怖い >>432
悲しいフレームワーク山ほど量産されてるんやで・・・ 別にいいけど、そういう情報を2chに頼るのってどうなんだろう >>438
理屈ではわかるけど、実際に情報が速いのはSNSだったり掲示板だからな >>440
なんか誤解してるかもしれんが、公式サイトも当然大事だが、それ以外のソースも重要っていう意味ね。
脆弱性情報なんかの場合、公式アナウンスの前にもなるはやで情報集める必要があるんたから、
かいはつしゃたるもの情報源は複数もっておくべき。 それしか言うことないのかよ、と言われても
他の人は言ってさえいない まあ他に話題もないし別にいいんでない
とも思うけど、スレに新着カキコ→3.6.3リリース みたいなのばっかりだと辛いな じゃあCake2から乗り換えるFWについて
ぶっちゃけ3ってどうなん?使ってる?使えてる? 2から3に移るのがコストになるからそれならLaravelやるかとかRoRに移行したのも多いはず うちもCake2だったが次からLaravelに移る オラもLaravelに移行中というか色々勉強中
急ぎの仕事は、イカンと思いつつも慣れているCake2で作ってる(蔵様すんませんw) 俺はお堅い仕事で、長い周期でシステムを動かさないといけないから結局Cake3に移行した。
いろんな言語見ても、フルスタックのFWでサポート期間が長いのを探すと、Cakeは優秀だよ。 公式のこれなんですけど
最初の 'rule' => 'validate_title', これなんですか?
何でもいい文字列ではなく、emailみたいな決められたルールでしょうか?
// グローバル関数を利用する
$validator->add('title', 'custom', [
'rule' => 'validate_title',
'message' => 'タイトルが正しくありません'
]);
// プロバイダーではないコールバック関数を利用する
$validator->add('title', 'custom', [
'rule' => [$this, 'method'],
'message' => 'タイトルが正しくありません'
]);
// クロージャーを利用する
$extra = 'Some additional value needed inside the closure';
$validator->add('title', 'custom', [
'rule' => function ($value, $context) use ($extra) {
// true/falseを返すカスタムロジックを記入
},
'message' => 'タイトルが正しくありません'
]);
// カスタムプロバイダーからのルールを利用する
$validator->add('title', 'custom', [
'rule' => 'customRule',
'provider' => 'custom',
'message' => 'タイトルが十分にユニークではありません'
]); >グローバル関数を利用する
なんだから validate_title という名前の関数があるんじゃない カスタムバリデーションルールの項目に書いてある説明だから>>454でファイナルアンサーでしょ
自分で書いた関数も使えますよって説明だから >>459
debugモードで影響がある脆弱性みたいだね。
ちんぺいさんのtweetは役に立つ。 来年のCakeFestの開催地を投票で決めるということで、既に始まっています
https://cakefest.org/
・Japan
・Atlanta GA, USA
・France
・Germany プログラミングを誰でも習得できる方法は、「前場アキドルのプログラミングマスター方法」というブログで見られるらしいよ。ネットで調べると見られるらしいです。
DJMYA CakePHP3で、特定のコントローラーだけcookie名を変えたい場合、
どうすればいい?
initializeのなかで
Configure::write( 'Session', [ 'cookie' => 'xxxxx' ] );
とやってもかわらないのだが、これじゃダメなのかな? cakephp3でアンカーリンクへ飛びたい場合どのようにすれば良いのでしょうか?
http://サイトURL#20180718 で画面表示と同時に指定したアンカー(id='20180718')へ飛んだ状態で画面表示を行いたいのです
controller側のindexメソッド内に
$this->redirect(array('controller' => 'コントローラ名', 'action' => 'index', '#' => '20180718'));
と記述し、routes.phpで
$routes->connect('#20180718', ['controller' => 'コントローラ名', 'action' => 'index'])->setPatterns(['#' => '20180718']);
と指定したのですがタイムアウトとなってしまい悩んでいます
助言をいただきたいです >>466
とりあえず '#' => '20180718' を抜いた状態で正しくできます? 466です
'#' => '20180718' を抜いた状態でもタイムアウトになってしまいます
redirectがうまく行っていないようなので色々試してみます redirectの前にreturnが抜けてるとか? 既にAjaxを使って表示されているelementでテーブルを表示してるんですけど、
そのテーブルをさらにAjaxを使ってページングするにはどうしたらいいのでしょうか。。。
cakephp3を使ってるのですが、
2以前だったらググれば結構出てくるのに、3だとなかなか出てこなくて。。。
今の状態は、ページングの中身自体は表示できるんですが、Ajaxじゃないので別ページに飛んでしまい、cssとかとかも効いていないので、ただ中身だけ羅列されている状態です。
もし、お分かりの方いらっしゃれば教えて頂けたら助かります。 Cake3情報少ないよね
使ってる人少ないんだなあ >>471
ソースレベルから質問してくれないと答えるの難しいと思う >>472
めんどくさいよ。
PaginatorComponentをカスタマイズして、JSONで返すようにすればいいだけの話なんだけど、
JsonViewとかあるのに何でそこだけ別対応しないかんのん?って状態。
こんな古臭い設計と付き合いたくない。 >>471
既にajaxで表示できてるんだから出来そうなもんだけどなぁ
リンクが普通のリンクになってるとか、ページに余計な情報が入ってるとかじゃないの? 分かりにくい説明なのに皆さんコメントありがとうございます。
ググったりした結果、
$(".pagination a").bind(“click”, function (event) {
if(!$(this).attr(‘href’))
return false;
$.ajax({
dataType:“html”,
evalScripts:true,
success:function (data, textStatus) {$("#決めてた名前").html(data);},
url:$(this).attr(‘href’)});
return false;
});
みたいなことで、最初のページングのリンククリックまでは正しくページングできるんですが、
その次に別のリンクを押すと、また整ってないページになってしまうんですよ(´Д` ) >>476
レスポンスに対して、もう一度イベントのbindしてる? >>477 さん
反応ありがとうございます。
既にAjaxで表示できているfunctionとは別にページングのfunctionを作り、既にある方のsuccessから別に作ったものを呼び出せばうまくいきました。 ajaxなのに、htmlでもらう。
そこ変えるべきだろ。 >>480
そうなのか。。。
ごりごりHTMLのレスポンス返してるわ。 すみません、ソース管理で質問です。
cakephp3で開発したアプリをgitで管理する場合、vendorフォルダのファイルって管理に含めてますか?
vendorも管理に含めるとファイル数・サイズも大きくなり、tortoisegitを使うのが厳しい状態です。
「composerで配布されるコンポーネントは下位互換性が保証される」という理想が守られるなら
vendorは管理から外してもいいのですけど、そうもいかないですよね?
みなさんどうしてます? composer.lockもコミットしておけばよいだけでは >>485
あ、そういう役割があるファイルだったんですね。
composer使ったときに出力されるゴミファイルと思って、今までなんのためらいもなく削除してました。
ひとつ賢くなれました。 今度のプロジェクトでLAMP+Cake使うんだけど今の時代この組み合わせってあり? 単発で使うにはcakeの学習コストが高すぎる
cake案件バンバン入ってくる時代なんて二度とないだろうしどうせ勉強しなきゃいけないならlaravelにでもしたほうがいい cakephp3なのですが年代ごとにテーブルが分けられており年代以外のカラム名は全て共通なので
select文はBehaviorにてselectクエリを記述して使い回すという使い方で良いのでしょうか?
それともそれぞれの年代の全てのModelファイルにselect文を実行するメソッドをそれぞれ記述していく方法となるのでしょうか? >>491
Behaviorだろう
だけど、そんな変なDB設計にした責任者を小一時間問い詰めるほうが先 >>492
ありがとうございます
Behaviorでクエリ実行するようにしました
全ての年代のテーブルモデル呼び出す必要がありましたw Cakephp3のunionAllなのですが公式サイトのCookbookでは以下のように説明がされていました
$inReview = $articles->find()
->where(['need_review' => true]);
$unpublished = $articles->find()
->where(['published' => false]);
$unpublished->unionAll($inReview);
こちら10テーブルなど大量のテーブルをunion allしたい場合は
$inReview1 = $articles->find()
->where(['need_review' => true]);
$inReview2 = $articles->find()
->where(['need_review' => true]);
・
・
・
$inReview10 = $articles->find()
->where(['need_review' => true]);
$unpublished->unionAll($inReview1)->unionAll($inReview2)〜->unionAll($inReview10);
のようにテーブル数ぶん変数を用意してunionAllするしか方法はないのでしょうか?
ご指南よろしくお願い致します 今からcakeやるハメになった
こんな時代にcakeなんかにしがみつきやがって >>496
あと3年したら、cakeの有能さに気付くだろう