のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,837人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

    元スレ【PHP】Laravel【フレームワーク】 Part.6

    php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    701 : nobodyさん - 2021/06/20(日) 10:28:58.58 ID:???.net (+25,+29,-35)
    >>696
    そもそもマスアサインメント知らないLaravel初心者にそんな具体的な説明しても無駄では?
    702 : nobodyさん - 2021/06/20(日) 10:30:07.55 ID:???.net (-27,-30,-46)
    idって基本的にauto_increment入れる為のものだから
    $user = User::find($request['id']);
    とはやっても
    $user->idの値を書き換えるとかちょっとあり得ん
    703 : nobodyさん - 2021/06/20(日) 10:49:54.07 ID:???.net (+27,+29,-7)
    だからそれは例だっつーの
    アホなの?
    704 : nobodyさん - 2021/06/20(日) 10:51:16.05 ID:???.net (-14,-17,-15)
    fill厨はどんな場合でも使ってそうw
    705 : nobodyさん - 2021/06/20(日) 11:14:16.81 ID:???.net (+22,+29,-6)
    例にある意味予約語みたいなワードを書くとか根本的に常識がない
    706 : nobodyさん - 2021/06/20(日) 11:22:09.98 ID:???.net (-23,-30,-44)
    >>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
    こっちだと思うよ
    707 : nobodyさん - 2021/06/20(日) 11:24:44.54 ID:???.net (-28,-29,-3)
    708 : nobodyさん - 2021/06/20(日) 11:58:24.08 ID:???.net (+27,+29,-2)
    おまえらっていつもマウントの取り合いしてるな
    709 : nobodyさん - 2021/06/20(日) 12:09:40.58 ID:???.net (-27,-30,-61)
    例だからとかいって言い訳しているけど
    idって基本的にauto_increment入れる為のものだから
    $user = User::find($request['id']);
    とはやっても
    $user->idの値を書き換えるとかちょっとあり得ん
    710 : nobodyさん - 2021/06/20(日) 12:12:46.30 ID:???.net (+27,+29,-41)
    しつこい
    アホだ
    アホは書き込み禁止
    711 : nobodyさん - 2021/06/20(日) 12:26:55.34 ID:???.net (+26,+29,-47)
    >>704
    どんな時でも使うべきだぞ。じゃないとリクエストからモデルに渡してよいフィールドが、コントローラー側で決定されるメソッドが生まれてしまうぞ。
    712 : nobodyさん - 2021/06/20(日) 12:41:55.52 ID:???.net (-2,-6,-44)
    fillを必ず使え代入は危ないって言ってる人は、fillableじゃない値をどうやって入れるの?
    713 : nobodyさん - 2021/06/20(日) 12:44:44.49 ID:???.net (+38,+30,-73)
    このスレ見てるとレベル低い奴が何故か威張っていて、これが今の日本のIT技術が低い理由、そして国が衰えてる理由に繋がってる気がする。
    要は反知性主義なんだよね。真面目に科学的に考える奴のことを軽視している。
    これって地動説否定とかトランプ支持者など外国でも見られた傾向だけど、日本は特にひどいね。教育が悪いんだろうか。
    714 : nobodyさん - 2021/06/20(日) 12:57:28.34 ID:???.net (+27,+29,-6)
    IDのないスレをいつまで本スレとして使うつもりなのか?
    715 : nobodyさん - 2021/06/20(日) 13:08:15.94 ID:???.net (+27,+29,-17)
    >>712
    質問を質問で返すなよ お砂糖が知れるぞ
    716 : nobodyさん - 2021/06/20(日) 13:31:17.12 ID:???.net (+33,+29,-16)
    >>713
    コイツが1番偉そうっていうね。
    717 : nobodyさん - 2021/06/20(日) 13:31:50.81 ID:???.net (+26,+29,-7)
    お前ら>>696の例に対して文句があるんだったら自分が例を提示しろよ
    718 : nobodyさん - 2021/06/20(日) 13:50:15.46 ID:???.net (+6,-6,-44)
    >>691
    fillを必ず使え代入は危ないって言ってる人は、fillableじゃない値をどうやって入れるの?
    719 : nobodyさん - 2021/06/20(日) 13:57:05.67 ID:???.net (-25,-29,-36)
    >>718
    できない訳ないじゃない
    自分が知らないから無いだろうって決めつけると恥晒すよ
    http://laravel.com/api/8.x/Illuminate/Database/Eloquent/Model.html#method_forceFill
    720 : nobodyさん - 2021/06/20(日) 14:00:15.21 ID:???.net (+25,+19,-35)
    >>719
    いやforceFillというメソッドは分かるよ。
    それを使えば解決するよって回答でいいのかな?
    721 : nobodyさん - 2021/06/20(日) 14:12:25.97 ID:???.net (+29,+29,-50)
    >>720
    まず何を解決したいのかな?
    それを聞かないで全て解決するなんて事は言えない
    できれば具体例上げて欲しい
    状況によって使うメソッドや方法も変えてるから
    722 : nobodyさん - 2021/06/20(日) 14:20:38.12 ID:???.net (+27,+29,-40)
    逆にコントローラーでfillableじゃない値をセットしている奴は、コントローラーの責務をどう規定しているのか詳しく聞いてみたい。
    723 : nobodyさん - 2021/06/20(日) 14:24:09.06 ID:???.net (+30,+29,-98)
    >>720
    質問しといて申し訳ないけど
    俺もfill使ってない事思い出したわ、すまんな
    プロパティに入れてfillableガン無視で最後saveしてる人だったって事にしといてください
    ここで言い争いしてコスト使うのが1番頭おかしいってふと気付いたわ
    724 : nobodyさん - 2021/06/20(日) 14:35:38.78 ID:???.net (-26,-29,-62)
    laravelはなんでN+1問題が発生するんですか?
    N+1って有名な問題だからFW設計時にそれを強制的にFW側で回避するようにできなかったのかな
    いまだとwithとか明示的に使わないと回避できないよね?
    725 : nobodyさん - 2021/06/20(日) 14:39:23.50 ID:???.net (-21,-24,-17)
    N+1問題を回避できるFWなんてないし、理論上つくれない
    726 : 718 - 2021/06/20(日) 14:43:21.94 ID:fbme7EFA.net (-17,+29,-41)
    >>723
    いや別に喧嘩腰になったつもりは無くて、単なる興味から聞きたかっただけなんだけどな。
    答えたくないなら残念。

    >>721
    例を挙げるならユーザーのパスワードのセットする時とかだね。
    728 : nobodyさん - 2021/06/20(日) 14:45:04.87 ID:???.net (+24,+29,-18)
    >>725
    そうなんですか?となるとやっぱりFWを使う人側で回避しないといけないというわけですね
    730 : nobodyさん - 2021/06/20(日) 14:47:57.78 ID:???.net (+27,+29,-41)
    N+1をFW側で回避することは非常に難しいですよ
    その実装をできた人は世界中で表彰されるだろうと言われるぐらい難しいことなんです
    732 : nobodyさん - 2021/06/20(日) 15:56:55.52 ID:???.net (+27,+29,-56)
    シーダーにforceFill使うならわかるけど
    他の用途では使わないほうがいい気がする
    laravelは入門程度だから実際に業務で使っている人の意見聞きたいな
    733 : nobodyさん - 2021/06/20(日) 16:03:57.30 ID:???.net (+28,+29,+0)
    >>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
    734 : nobodyさん - 2021/06/20(日) 16:20:43.33 ID:???.net (+31,+29,-67)
    >>733
    読み返してみたのですが

    > コントローラではない所で更新

    この表現は適切じゃなかったですね

    > 独立した処理として更新

    が適切かもしれません
    735 : nobodyさん - 2021/06/20(日) 17:43:02.03 ID:???.net (-27,-29,-27)
    N+1問題、Laravel8の最新バージョンだと回避できるようになってる。N+1になる処理を実行しようとすると例外を発生させられるようになった。
    736 : nobodyさん - 2021/06/20(日) 19:14:58.36 ID:???.net (+22,+29,-2)
    お前ら、マジで何やってんの?
    737 : nobodyさん - 2021/06/20(日) 19:20:55.26 ID:???.net (+25,+27,-21)
    >>735
    マジで?それはドキュメントのどこに書いてあるの?
    738 : nobodyさん - 2021/06/20(日) 19:34:42.48 ID:???.net (-16,-29,-47)
    >>737
    マニュアルにはないかもしれないけど
    この辺じゃないかな?
    http://twitter.com/taylorotwell/status/1395087054254526474?s=21
    http://github.com/laravel/framework/pull/37363
    (deleted an unsolicited ad)
    739 : nobodyさん - 2021/06/20(日) 19:46:37.88 ID:???.net (+36,+29,+0)
    >>737
    すでに上で出てるけど、こっちの方が分かりやすいかな。
    http://laravel-news.com/disable-eloquent-lazy-loading-during-development
    741 : nobodyさん - 2021/06/20(日) 21:16:40.26 ID:???.net (+24,+29,-4)
    >>725
    速攻論破されて草 >>738-740の内容知らなかったのかな?
    742 : nobodyさん - 2021/06/20(日) 21:42:57.75 ID:???.net (+25,+29,-50)
    俺はまだ論破されていない >>738-740はN+1の回避策を提示しただけであって
    FW側で回避できるという証明にはならない
    743 : nobodyさん - 2021/06/20(日) 21:52:49.79 ID:???.net (+27,+29,-1)
    ちょっと言っている意味がわからないです
    744 : nobodyさん - 2021/06/20(日) 21:53:07.92 ID:???.net (+37,+29,-121)
    >>598
    いや、別に論破とかどうでも良いんだが。N+1の実装したら例外出て便利になったっていう情報知らないぽいから教えてあげたかっただけ。

    あとFW側で回避したいなら、modelのwithプロパティ使っとけば確実だと思うけどね。ただこれ使うと余計なテーブルアクセス増えてしまいがちだから、不要な時はwithoutとかのメソッド入れなきゃダメで、それはそれでだるい。
    745 : nobodyさん - 2021/06/21(月) 00:54:44.77 ID:???.net (+27,+29,-30)
    だからモハメドの話をちゃんと聞けって
    Laravel使っててモハメドの話聞いてないとかありえないぞ
    http://youtu.be/213aEudaumk
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について