【PHP】Laravel【フレームワーク】 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
テンプレ追加修正お願いします
Laravel
ウェブ職人のためのPHPフレームワーク
本家
https://laravel.com/
git
https://github.com/laravel
動画チュートリアル(英語)
https://laracasts.com/
日本語
http://laravel.jp/
書籍
Laravel リファレンス[Ver.5.1 LTS 対応] Web職人好みの新世代PHPフレームワーク
https://www.amazon.co.jp/gp/aw/d/4844339451
Laravelエキスパート養成読本[モダンな開発を実現するPHPフレームワーク!] (Software Design plus)
https://www.amazon.co.jp/gp/aw/d/4774173134 artisanでauth入れるといろいろ設定してくれるんだが
パスワードリセット使わんからcontroller消したりmigration消してしまった
これって大丈夫なの?
artisanで全ルート表示しようとするとエラーになる
元に戻せないし涙目なんだが model instance作るとき
$flight = new Flight;
なぜFlight()にならないの?
そういうものだから?違和感があります。
教えてください♡ >>194
PHPの仕様としてインスタンス生成時の引数に使うカッコは省略可能。
コンストラクタに渡すものが特になければ省略していいが、カッコありに統一したほうがコードとしては見やすい 青い本とは別に、解説書が新しく発売されたようですが、
ご覧になった人いますか?
初心者におすすめできるかどうか、教えてください。 >>197
前書きより
「本書の内容は初心者の方には少しばかり難しいかもしれません。」 新しいララベル本難しそう
こんなことやらないとアプリ作れないの?ってレベル 私たち日本人の、日本国憲法を改正しましょう。
総ム省の、『憲法改正國民投票法』、でググって
みてください。拡散も含め、お願い致します。 >>197
初版よりかなり分かりやすくてよいよ
でも青い本の方が初心者向け向きかも CRUDとかresourceの考え方がよくわかりません
例えば検索ボタンで一覧表示する画面があったとして
検索する場合は普通POSTだと思うんですが
その場合はindex?show?フォームタグをGETにしちゃうの?
わかりません… 質問文が何言ってるかも全然分からんし、一冊本でも買って勉強すれば? いやわかるけどね。。
一覧ならindexで、formをgetでいいんじゃないの。
まあ俺は使わないけど。 >>204
あーgetにしたらセキュリティ的によくないか?w
やっぱ使わないなw HTTPメソッドの使い分けはその操作が安全であるかどうか、べき等であるかどうかで判断するのが原則。
安全→サーバ、特にDBなどの状態を変化させないこと
べき等→その操作を何度行っても結果が同じであること
検索のような安全でべき等な処理はGETが推奨。
要はGETを使う場合はブラウザ側でキャッシュしても問題ないようにしておいてねということ。
POSTはリソースの新規作成など安全でもなくべき等でもない操作に使う。
ただし、クエリパラメータに出したくない項目がある場合や、検索項目がとんでもなく多くてURLが長くなる場合などに、安全でべき等な操作であってもPOSTを使わざるを得ないこともありうる
GETであることの他の利点は、Google検索のようにURLだけでそのまま検索結果の表示ができること >>206
DELETEはGETでやっちゃうことあるんだけど、アンチパターンなのかな? >>206
大変勉強になりました。ありがとうございます! 「その操作を何度行っても結果が同じであること」って説明してくれてるじゃん 誰かタスケテ〜
Laravelに関係ないかもだけど、コントローラ内でpreg_replace_callbackに書いたコールバック関数をいくら変更しても反映されなくて困ってる
そもそもNetBeans+Xdebugでコールバック関数の中がトレースできないんだけどそういうもの?
無名関数で書いていたものをスタティックメソッドに変えて、メソッド名を存在しないものにしたり'self::'だけにしてみても、すでに存在しない無名関数の内容がそのまま実行されてる
ダミーのメソッドを書いて'self::dummy'なんてやっても以前の無名関数が呼ばれてる
それどころか'self::'だけでもそのまま動いちゃう
メソッド名を''にするとさすがにエラーになる
どういうことなのこれ?
環境はXAMPPのPHP5.6.15でLaravel5.6だけど本番環境のCentOS6、PHP5.6.38でも同じ挙動
Apacheの再起動やcomposer clear-cacheをやっても変わらず
なんなのこれ〜 >>214
コンパイルされたコードがキャッシュに残ってるみたいな話っぽいけど
それにしたってこんなコードがエラーなく走るって許されなくない?
$csv = preg_replace_callback('/###([0-9]+)###/', 'self::', $csv); >>216
現在のコードをどう変えても、実行されるのは以前の無名関数なんよ…
もう存在してないコードなので、その中にログ出力を入れることもできない…
なおNetBeansのデバッガで追うと、>>215の行が実行されてるのは間違いない
ステップ・インでそのまま次の行に行ってしまうw ちなphp.iniでopcache.enable=0にしてApacheを再起動しても変わらなかったw
もうお手上げw もう一度無名関数の形に戻して、その中に文法エラーを入れとくとちゃんとエラーになる
でも文法エラーを直すと以前の内容が走る
無名関数の中で呼んでいるbladeテンプレートの名前を
めちゃくちゃなものに変えてもエラーにならないからそれは間違いない
コントローラを別名で新たに作って
ルーティング先も新コントローラに変えて見たけど症状変わらず
なんぞこれなんぞこれなんぞこれw >>220
この一行目にブレークポイントつけとくとちゃんとデバッガで止まる
クロージャ内の行にブレークポイントつけといてステップインしてもスルーして
その次のStorage::putに行く
ログには何も残らないしviewのファイル名をどう変えても以前の内容が出力される
$csv = preg_replace_callback('/###([0-9]+)###/', function ($matches)
{
error_log('[Closure in CsvController::upload] TEST');
$match = $matches[1];
$item = \App\Item::find($match);
if (! $item) {
return $match;
}
$html = '"'.str_replace('"', '""', preg_replace("/[\r\n]/", '', view('forms.description.ebay', [ 'item' => $item ])->render())).'"';
return $html;
}, $csv);
Storage::put('temp.csv', $csv); >>207
完全にアンチパターン
GETで削除を実装していて検索エンジンのクローラに全部消されたという嘘みたいな笑い話がある >>222
CSRF対策くらいはさすがにするのでそれはないけど
他にDELETEをGETでやらないほうがいい合理的な理由ってある? GETで削除を実装するメリットこそほとんど何もないでしょ HTTPの基本に沿って実装されているものが多いのに、あえて反発して得がある方が稀でしょ リファラーでワンタイムトークンが漏れる恐れがあるね 漏れてもいいじゃん
何したってもうダメなときはダメなんだよ @edit画面が呼ばれ、DBから初期データ取得してフォーム要素にセットして表示
⇒ この画面で編集されて[確認]ボタン押されPOST送信される
Aconfirm画面が呼ばれ、フォームデータを取得しバリデーションして以下2通りの処理に分かれる
その1) ⇒ バリデーションOKの場合、確認画面を表示。return view('path.to.confirm', compact('data'));
その2) ⇒ バリデーションNGの場合、edit画面に戻しエラー表示。return view('path.to.edit', compact('data', 'error'));
以上のような画面遷移があるとすると
path/to/edit.blade.phpのフォーム要素valueの書き方をどうすべきか迷っています。
DBから取得し、そのままビューに渡すと value="{{$data->hoge}}" 形式で書きます。
edit画面に戻す時にそのまま渡すと配列のため value="{{$data['hoge']}}" こう書くことになります。
なので両方に対応するには value="{{$data['hoge'] or $data->hoge}}" のように書くことで対応できそうです。
でもスマートではないのでedit画面に戻す時は $data = (object)$data; のようにキャストすることで value="{{$data->hoge}}" だけでよさそうになりそうです。
これって他にもっといい方法ありますか? 青い本も、新しいのもイマイチやね。laravel情報少ないがホントに流行ってるのかねぇ( ̄▽ ̄;) >>231
確認画面にするならわざわざControllerから渡さなくてもヘルパのold関数でいいんじゃない?
value="{{ old('hoge', $data->hoge) }}"
で、直前の入力値か、DB値かが表示できる >>233
その本のどっちかと公式リファレンスあれば
フレームワーク初心者でも充分理解できると思うが
逆に何の情報が足りないの? バリデーションでよく例に出てる以下のようなやつって、エラー出たら自動で元の画面に戻るみたいに書いてるけど戻らんのよ
例外吐くみたいなこと書いてあるからtry/catchで囲ってcatchブロック内にreturn back();書くのが普通?
$this->validate($request, [
"hoge" => "required|string|max:255",
]); >>237
よくsublimeなんかでlaravel書く気になるね IDE使わないでテキストエディタ使ってる人はネタなのか IDEなんて継承しまくりのソース見る時ぐらいしか必要とは思わん phpstorm → mvc全部書けるオールラウンダー
eclipse → viewが弱い
sublime → viewだけなら使い物にはなる
atom, vscode, vim → 使ったことないけどsublimeみたいなもんだろ? netbeansは無料ってだけで特筆する性能じゃないよね vscodeは補完プラグイン次第でまぁまぁ使えなくも無いけどゴミだな vscodeはなんか小ざっぱりしていて物足りない
ザ・IDE!っていうゴテゴテしたUIのガジェット感がないんだよなあ いやvscodeはIDEじゃなくてテキストエディタなんだからそういうもんだろ お前らってメモ帳しかない環境でlaravelやれって言われたら発狂しそうだな 金出さないで真っ当なIDE使うならNetBeansだよね
金出せるならPhpStorm使ったほうが良いと思うけど 検索機能があって、一覧表示とページ移動できるようにしたい場合ですが
モデルで検索条件で取得した一覧データと
別途ページ移動用に、同じ検索条件でpagenate(20)みたいにして生成しないといけない?
同時にはできない? NetBeansは時々起こるコピペクラッシュが我慢ならん まぁSublimeやAtomとかよりはNetBeansのほうがまだマシだとは思うが、
jetbrainsが出してるものと比べればあんまり良いものでもないよな NetBeansでLaravelってそんなにいいのか? >>271
そんなにでもない
ケチな人専用じゃないかな? やはりjetbrainsのIDEが一番いい
あれは金を払う価値がある PHPの神フレームワークはLaravelという結論でOK? phpは開発者も嘆くほどダサくてクソコードを作りやすくしてしまったといってるからそれをベースにしたフレームワークなどに神もクソもない それなんだよな
dotnet coreがLinuxでも動くようになったからC#が今後伸びてくるやも JavaはOracleがやらかしたしなー
そういえばCやC++ってWebフレームワークってあるの? Laravelはsymfonyよりはよいとおもいます Oracle「PHPもボクが管理するよ」
ってなったら終わりだな PHP「僕がOracleを管理するよ」
こうなればOK リーナス「俺がPHPを管理する。糞コードや糞機能は廃止するからな」 ■ このスレッドは過去ログ倉庫に格納されています