私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ【PHP】Laravel【フレームワーク】 Part.6
php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
>>696
そもそもマスアサインメント知らないLaravel初心者にそんな具体的な説明しても無駄では?
そもそもマスアサインメント知らないLaravel初心者にそんな具体的な説明しても無駄では?
idって基本的にauto_increment入れる為のものだから
$user = User::find($request['id']);
とはやっても
$user->idの値を書き換えるとかちょっとあり得ん
$user = User::find($request['id']);
とはやっても
$user->idの値を書き換えるとかちょっとあり得ん
>>705
予約語ってis_adminの事言ってるよね
http://readouble.com/laravel/8.x/en/eloquent.html#mass-assignment
http://readouble.com/laravel/8.x/jp/eloquent.html#mass-assignment
ここ読んでみたらわかると思う、君が書き込みをするべきなのは
http://github.com/laravel/framework/issues
こっちだと思うよ
予約語ってis_adminの事言ってるよね
http://readouble.com/laravel/8.x/en/eloquent.html#mass-assignment
http://readouble.com/laravel/8.x/jp/eloquent.html#mass-assignment
ここ読んでみたらわかると思う、君が書き込みをするべきなのは
http://github.com/laravel/framework/issues
こっちだと思うよ
例だからとかいって言い訳しているけど
idって基本的にauto_increment入れる為のものだから
$user = User::find($request['id']);
とはやっても
$user->idの値を書き換えるとかちょっとあり得ん
idって基本的にauto_increment入れる為のものだから
$user = User::find($request['id']);
とはやっても
$user->idの値を書き換えるとかちょっとあり得ん
>>704
どんな時でも使うべきだぞ。じゃないとリクエストからモデルに渡してよいフィールドが、コントローラー側で決定されるメソッドが生まれてしまうぞ。
どんな時でも使うべきだぞ。じゃないとリクエストからモデルに渡してよいフィールドが、コントローラー側で決定されるメソッドが生まれてしまうぞ。
fillを必ず使え代入は危ないって言ってる人は、fillableじゃない値をどうやって入れるの?
このスレ見てるとレベル低い奴が何故か威張っていて、これが今の日本のIT技術が低い理由、そして国が衰えてる理由に繋がってる気がする。
要は反知性主義なんだよね。真面目に科学的に考える奴のことを軽視している。
これって地動説否定とかトランプ支持者など外国でも見られた傾向だけど、日本は特にひどいね。教育が悪いんだろうか。
要は反知性主義なんだよね。真面目に科学的に考える奴のことを軽視している。
これって地動説否定とかトランプ支持者など外国でも見られた傾向だけど、日本は特にひどいね。教育が悪いんだろうか。
>>712
質問を質問で返すなよ お砂糖が知れるぞ
質問を質問で返すなよ お砂糖が知れるぞ
>>713
コイツが1番偉そうっていうね。
コイツが1番偉そうっていうね。
お前ら>>696の例に対して文句があるんだったら自分が例を提示しろよ
>>691
fillを必ず使え代入は危ないって言ってる人は、fillableじゃない値をどうやって入れるの?
fillを必ず使え代入は危ないって言ってる人は、fillableじゃない値をどうやって入れるの?
>>718
できない訳ないじゃない
自分が知らないから無いだろうって決めつけると恥晒すよ
http://laravel.com/api/8.x/Illuminate/Database/Eloquent/Model.html#method_forceFill
できない訳ないじゃない
自分が知らないから無いだろうって決めつけると恥晒すよ
http://laravel.com/api/8.x/Illuminate/Database/Eloquent/Model.html#method_forceFill
逆にコントローラーでfillableじゃない値をセットしている奴は、コントローラーの責務をどう規定しているのか詳しく聞いてみたい。
>>720
質問しといて申し訳ないけど
俺もfill使ってない事思い出したわ、すまんな
プロパティに入れてfillableガン無視で最後saveしてる人だったって事にしといてください
ここで言い争いしてコスト使うのが1番頭おかしいってふと気付いたわ
質問しといて申し訳ないけど
俺もfill使ってない事思い出したわ、すまんな
プロパティに入れてfillableガン無視で最後saveしてる人だったって事にしといてください
ここで言い争いしてコスト使うのが1番頭おかしいってふと気付いたわ
laravelはなんでN+1問題が発生するんですか?
N+1って有名な問題だからFW設計時にそれを強制的にFW側で回避するようにできなかったのかな
いまだとwithとか明示的に使わないと回避できないよね?
N+1って有名な問題だからFW設計時にそれを強制的にFW側で回避するようにできなかったのかな
いまだとwithとか明示的に使わないと回避できないよね?
>>725
そうなんですか?となるとやっぱりFWを使う人側で回避しないといけないというわけですね
そうなんですか?となるとやっぱりFWを使う人側で回避しないといけないというわけですね
N+1をFW側で回避することは非常に難しいですよ
その実装をできた人は世界中で表彰されるだろうと言われるぐらい難しいことなんです
その実装をできた人は世界中で表彰されるだろうと言われるぐらい難しいことなんです
シーダーにforceFill使うならわかるけど
他の用途では使わないほうがいい気がする
laravelは入門程度だから実際に業務で使っている人の意見聞きたいな
他の用途では使わないほうがいい気がする
laravelは入門程度だから実際に業務で使っている人の意見聞きたいな
>>731
理解する気が無い人なのかと思ったので諦めてしまいました、ごめんなさい
パスワードとかfillableに含めない項目って基本的に含めない方がいい理由があると思うんですね
その「含めない方がいい理由」ってのは独立した機能として切り出して通常の流れから切り離す必要があると思うんです
特にパスワードに関しては更新後にメール送ったり仮パスワード発行するとか周辺機能も多くなりがちなので
機能として切り出してコントローラではない所で更新した方が良いと考えています
書いていただいた処理の流れでパスワードを更新するのであれば
fillableに含めない事で得られる効果(複数代入で更新されない)の意味がなくなってしまっているように感じます
forceFillで更新したら一緒だよねって問題に関してはご指摘の通り一緒です
ですが、機能として切り出されていればテスト時に更新すべきでない項目を更新していることを見つけることができますし
責任範囲が明確になってメンテナンスコストが抑えられると考えています
例えばlaravelのパスワード更新はこの様にforceFillで更新しています
http://github.com/laravel/framework/blob/8.x/src/Illuminate/Auth/SessionGuard.php#L662
こちらはメール認証でemail_verified_atカラムを更新しています
http://github.com/laravel/framework/blob/8.x/src/Illuminate/Auth/MustVerifyEmail.php#L24
理解する気が無い人なのかと思ったので諦めてしまいました、ごめんなさい
パスワードとかfillableに含めない項目って基本的に含めない方がいい理由があると思うんですね
その「含めない方がいい理由」ってのは独立した機能として切り出して通常の流れから切り離す必要があると思うんです
特にパスワードに関しては更新後にメール送ったり仮パスワード発行するとか周辺機能も多くなりがちなので
機能として切り出してコントローラではない所で更新した方が良いと考えています
書いていただいた処理の流れでパスワードを更新するのであれば
fillableに含めない事で得られる効果(複数代入で更新されない)の意味がなくなってしまっているように感じます
forceFillで更新したら一緒だよねって問題に関してはご指摘の通り一緒です
ですが、機能として切り出されていればテスト時に更新すべきでない項目を更新していることを見つけることができますし
責任範囲が明確になってメンテナンスコストが抑えられると考えています
例えばlaravelのパスワード更新はこの様にforceFillで更新しています
http://github.com/laravel/framework/blob/8.x/src/Illuminate/Auth/SessionGuard.php#L662
こちらはメール認証でemail_verified_atカラムを更新しています
http://github.com/laravel/framework/blob/8.x/src/Illuminate/Auth/MustVerifyEmail.php#L24
N+1問題、Laravel8の最新バージョンだと回避できるようになってる。N+1になる処理を実行しようとすると例外を発生させられるようになった。
>>735
マジで?それはドキュメントのどこに書いてあるの?
マジで?それはドキュメントのどこに書いてあるの?
>>737
マニュアルにはないかもしれないけど
この辺じゃないかな?
http://twitter.com/taylorotwell/status/1395087054254526474?s=21
http://github.com/laravel/framework/pull/37363
(deleted an unsolicited ad)
マニュアルにはないかもしれないけど
この辺じゃないかな?
http://twitter.com/taylorotwell/status/1395087054254526474?s=21
http://github.com/laravel/framework/pull/37363
(deleted an unsolicited ad)
>>737
すでに上で出てるけど、こっちの方が分かりやすいかな。
http://laravel-news.com/disable-eloquent-lazy-loading-during-development
すでに上で出てるけど、こっちの方が分かりやすいかな。
http://laravel-news.com/disable-eloquent-lazy-loading-during-development
俺はまだ論破されていない >>738-740はN+1の回避策を提示しただけであって
FW側で回避できるという証明にはならない
FW側で回避できるという証明にはならない
>>598
いや、別に論破とかどうでも良いんだが。N+1の実装したら例外出て便利になったっていう情報知らないぽいから教えてあげたかっただけ。
あとFW側で回避したいなら、modelのwithプロパティ使っとけば確実だと思うけどね。ただこれ使うと余計なテーブルアクセス増えてしまいがちだから、不要な時はwithoutとかのメソッド入れなきゃダメで、それはそれでだるい。
いや、別に論破とかどうでも良いんだが。N+1の実装したら例外出て便利になったっていう情報知らないぽいから教えてあげたかっただけ。
あとFW側で回避したいなら、modelのwithプロパティ使っとけば確実だと思うけどね。ただこれ使うと余計なテーブルアクセス増えてしまいがちだから、不要な時はwithoutとかのメソッド入れなきゃダメで、それはそれでだるい。
みんなの評価 :
類似してるかもしれないスレッド
- 【PHP】Laravel【フレームワーク】 Part.9 (884) - [98%] - 2022/3/13 12:00
- 【PHP】Laravel【フレームワーク】 Part.8 (148) - [98%] - 2021/8/8 21:30
- 【PHP】Laravel【フレームワーク】 Part.7 (779) - [98%] - 2021/7/9 16:18
- 【PHP】Laravel【フレームワーク】 Part.5 (568) - [98%] - 2021/5/1 22:00
- 【PHP】Laravel【フレームワーク】 Part.12 (314) - [96%] - 2023/1/30 18:45
- 【PHP】Laravel【フレームワーク】 Part.3 (983) - [96%] - 2021/2/12 4:00
- 【PHP】Laravel【フレームワーク】 Part.10 (446) - [96%] - 2022/6/6 19:30
- 【PHP】Laravel【フレームワーク】 Part.11 (870) - [96%] - 2022/8/28 15:45
- 【PHP】Laravel【フレームワーク】 Part.4 (460) - [96%] - 2021/4/4 4:00
- 【PHP】Laravel【フレームワーク】 Part.2 (917) - [96%] - 2019/9/10 9:15
- 【PHP】Laravel【フレームワーク】 (887) - [84%] - 2019/4/23 21:00
- 【PHP】フレームワーク Akelos (129) - [56%] - 2019/5/9 7:46
トップメニューへ / →のくす牧場書庫について