laravelのスコープとリゾルブを知った日。 #phpcode
2023.03.21
おはようございます、Laravel技術を2つ手に入れました。有り難いことです😭。
他にもいろいろあるだろうけど、スコープとリザーブという技術を知りました。スコープも便利そうだ、リザーブも使い方が分かりましたのでchatGPTにサンプルコードを書いていただき解説もお願いしました。
class User extends Model
{
public function scopePopular($query)
{
return $query->where('votes', '>', 100);
}
public function scopeActive($query)
{
return $query->where('active', 1);
}
}
$users = User::popular()->active()->orderBy('created_at')->get();
Laravelのスコープとは、モデルクエリに対する再利用可能なクエリ制約のことです。スコープを定義することで、特定のクエリ制約を複数の場所で簡単に再利用することができます。
use App\Services\SomeService;
$someService = resolve(SomeService::class);
Laravelのresolveメソッドは、サービスコンテナからサービスを解決するために使用されます。サービスコンテナとは、依存性注入を実現するための強力なツールです。
依存性注入とは、クラスが他のクラスに依存している場合、その依存関係を外部から注入することです。これにより、クラス間の結合度が低くなり、テストや再利用が容易になります。
Laravelでは、サービスコンテナを使用して依存性注入を実現します。resolveメソッドは、サービスコンテナから特定のサービスを取得するために使用されます。
タグ
$query->, ChatGPT, class, GET, gt, gt;active, Laravel, popular, query, resolve, resolveメソッド, return, SomeService, use AppServicesSomeService, user, where, クエリ制約, スコープ, リザーブ,
April Fools' Day :)
2020.04.01
Today is April Fool’s Day, isn’t it? Let’s all be careful not to be deceived by lies and hoaxes. Incidentally, I think Google will also release their annual lie app.
The video is not particularly meaningful.It’s just that it was the name of a channel on YOUTUBE that has the same name as where I live.
Click here to register your channel on YOUTUBE.
https://www.youtube.com/channel/UCN2C94LXAg1tXUVdyfz3Itw
※Postscript
Google cancels its infamous April Fools’ jokes this year
https://www.theverge.com/2020/3/27/21197260/google-cancels-april-fools-jokes-2020-coronavirus-covid19-pranks
タグ
:, 1, 2, 3, all, also, and, annual, App, April, as, be, BY, careful, channel-, click, com, day, deceived, Fools', Google, has, here, hoaxes, https, Incidentally, is, isn't, IT, It's, Itw, just, Let's, lie, lies, live, LXAg, meaningful, name, not, of, ON, particularly, register, release, same, that, The, their, think, To, Today, tXUVdyfz, UCN, video, was, where, will, www, Your, youtube,
SQLの無知さ加減。
2019.07.13
select id,namae,furigana
from passport
where id = ANY(select id from travellist where namae like "田中%");
自分のSQLに関しての無知さ加減は半端ないと思います。
メンターがいないので自分で調べないといけないのです、
こんな構文すら知らなかったのは痛い。
サブクエリの存在は前から知っていたのですが、ANYを前に
付けると、複数のHITにも対応できることを知った。
ちなみに更新作業や削除作業の際に
主キーを検索対象に入れていないと処理がもっさりします。
そう考えると一番最初に働いていたIT会社のSQLは
今思うと初歩的な構文が多かったのかもしれない。
何気ない事なのかもしれないけど
動いていた構文に追加対応とか行う際にもっとその構文を
解析すれば良かったなと思います。
やはりSQLで行ったほうが早いことって結構あります。
タグ
ANY, from, furigana, HIT, ID, IT, like, namae, passport, select, SQL, travellist, where, キー, クエリ, こと, サブ, はり, メンター, 事, 今, 会社, 作業, 処理, 削除, 前, 加減, 半端, 存在, 対応, 対象, 更新, 最初, 検索, 構文, 無知, 田中, 自分, 複数, 解析, 追加, 際,
同一TABLEを参照しアップデートする。
2019.04.27
同一TABLEを参照しアップデートする。
これでアップデートできる事を昨日知りました。
UPDATE demo1,(select chk from demo1 where id=1) as demo2 SET
demo = "2" where id = 1 and chk = demo2.chk;
--------------
--------------
/*
同一TABLEを参照しアップデートする。
table demo1
id,chk
1,123
*/
--------------
タグ
1, 2, and, as, chk, demo, from, ID, select, set, TABLE, UPDATE, where, アップデート, これ, 事, 参照, 同一, 昨日,
彼は「Where there's a will, there's a way.:意志あるところに道は開ける。」と言った。
2016.07.26
土曜日は家から出て行くことはあまりなかったので、家でWOWOWを
見てました。そしたらビリギャルが放送されていたので、最初から最後まで
結局みてしまいました。映画館で見て、WOWOWで2、3回目ぐらい見てます。
今日のお題は「Where there’s a will, there’s a way.:意志あるところに道は開ける。」です。
この言葉は映画の最後のほうで塾講師が生徒に送った言葉ですが・・・
この言葉はリンカーン大統領の言葉なわけですね。
相矛盾していますが(自分の中では矛盾していない言葉なのですが)、
「なるようになるさ。」という言葉と似ているなと感じるんです。
そうなるだと思うと、やはりそうなるだと思います。
あと、環境は人を変えるだともいえます。
研究者の中にひとり凡人を入れたら、数年後には
そのひとも研究者並になるというモノ。
そういう感じで人は環境に起因するのだと考えています。
人よりも秀でている人なんてのは、確率的に
あまりいません、殆どの人は過去の努力の結果
いまが在るに過ぎないと思います。
結果、努力は必要です。無駄な努力は不要ですが必要な努力は必須です。
意志っていうのは努力する源だとも思いますし
この意志があればこそ、困難な道も開けるのでは
無いでしょうか。
結局、最後まで諦めなかった人だけが
自分の望む結果に近いところにいるだろうと思います。
タグ
2, 3, there's, way, where, will, WOWOW, あと, こと, そのひと, ところ, ひとり, ビリギャル, もの, リンカーン, 中, 人, 今日, 凡人, 土曜日, 塾講師, 大統領, 家, 彼, 意志, 放送, 数, 映画, 映画館, 最初, 最後, 環境, 生徒, 矛盾, 研究者, 自分, 言葉, 道, 題,