【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 >>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を管理する。糞コードや糞機能は廃止するからな」 LaravelのいいところはJavaじゃないところ お前らLaravelコーディングできないからって嫉妬するなよw 最近Laravelはじめてみたけどこれ凄いな
VueとかReactなんかのフロントエンドのフレームワーク使うのにwebpackの設定書かなくてもいいし
ちゃんとフロントエンドとバックエンドの接続を一つの環境でできるんだから
cdn読み込みとかじゃないフル機能のVueやReactを使ってバックエンドのDBとデータやり取りするシステム作ってみたいって人にはいいかも知れん 最近Laravelはじめてみたけどこれ凄いな
VueとかReactなんかのフロントエンドのフレームワーク使うのにwebpackの設定書かなくてもいいし
ちゃんとフロントエンドとバックエンドの接続を一つの環境でできるんだから
cdn読み込みとかじゃないフル機能のVueやReactを使ってバックエンドのDBとデータやり取りするシステム作ってみたいって人にはいいかも知れん 最近Laravelはじめてみたけどこれ凄いな
VueとかReactなんかのフロントエンドのフレームワーク使うのにwebpackの設定書かなくてもいいし
ちゃんとフロントエンドとバックエンドの接続を一つの環境でできるんだから
cdn読み込みとかじゃないフル機能のVueやReactを使ってバックエンドのDBとデータやり取りするシステム作ってみたいって人にはいいかも知れん 最近Laravelはじめてみたけどこれ凄いな
VueとかReactなんかのフロントエンドのフレームワーク使うのにwebpackの設定書かなくてもいいし
ちゃんとフロントエンドとバックエンドの接続を一つの環境でできるんだから
cdn読み込みとかじゃないフル機能のVueやReactを使ってバックエンドのDBとデータやり取りするシステム作ってみたいって人にはいいかも知れん 最近Laravelはじめてみたけどこれ凄いな
VueとかReactなんかのフロントエンドのフレームワーク使うのにwebpackの設定書かなくてもいいし
ちゃんとフロントエンドとバックエンドの接続を一つの環境でできるんだから
cdn読み込みとかじゃないフル機能のVueやReactを使ってバックエンドのDBとデータやり取りするシステム作ってみたいって人にはいいかも知れん LaravelとVue.jsをどう連携すれば効率的に使えるかを説かれた本出ないかな 「○○処理が完了しました」みたいなメッセージを画面に出すのによく使われる
return redirect('foo/bar')->with('status', 'メッセージ');
って便利だけど、これって普通のセッションに入れてるわけじゃなくて
1度読み出したら消す(フラッシュ)みたいな特別な領域に入れてるよね
session()->flush('status', 'メッセージ'); みたいな書き方があるっていうの見つけたけど、これ使うとセッションが全部消えてログアウトになった
で、session()->with('status', 'メッセージ'); のように書いてみたらそんなもんありませんみたいなエラーログが吐かれた
そこで質問ですが直接リダイレクトすることなくセッションに一時的にメッセージを保存する書き方ありますか? >>307
データの一時的保持ならflashじゃねーの
flushは全データ消去 プログラムやってれば、割とよく出てくる単語だと思うけど。
メモリ上のデータをフラッシュ(flush)する(=ファイルに掃き出す)。 プログラムやってれば、割とよく出てくる単語だと思うけど。
メモリ上のデータをフラッシュ(flush)する(=ファイルに掃き出す)。 プログラムやってれば、割とよく出てくる単語だと思うけど。
メモリ上のデータをフラッシュ(flush)する(=ファイルに掃き出す)。 FormRequest使うと入力エラーだと入力画面に戻ってoldで入力値が取れるけど、その時にFormRequest内で入力値に追加することってできないのかな
やりたいことは画像アップロード付のFromでエラーで戻った時に正常にアップロード済みの画像は再選択しなくてもいいようにしたいです
画像でエラーが出た時はもちろん再選択でいいです
なので入力エラーの時は入力データに別のキーでアップロード済み画像のフルファイル名と元ファイル名を持たせようかと思ったんだけどうまくいかない old値使うよりもonsubmit系のイベントで要件に満たないものは送信中止した方がいいんじゃない? ■ このスレッドは過去ログ倉庫に格納されています