2017.11.13
Livvon#30【LaravelのCollection】
また時間を浪費するようなハマり方をしているのでメモを。
Laravelのクエリービルダーで使える関数に
pluck()っていうものがありまして、なんかこれ、配列で取得できるみたいな言い方してると思ってたんですよね。
ただ、よくよくその中の値を見てみると・・・・・・
Collection {#305 ▼
#items: array:2 [▼
0 => 57
1 => 58
]
}
こんな感じに
CollectionなるArrayのラッパークラス(らしい)が返ってきます。
これをArrayキャストすると
Arrayっぽい何かになっちゃって、foreachぐらいなら問題なく動くんですがWhereInが正常に動かないっぽいんですね。
なんか最初の1つだけ値は取れてるんですけど・・・・・・キャストしてバグって処理が止まってくれたら原因見つけやすかったんですけど、変に1つだけ結果取れるから原因解明に時間がかかりました・・・・・・。
これを無理矢理Arrayにするには
all()ってメソッドを使えばいいみたいですね。
collectionの機能はたぶん使ってないはずなので、DAOオブジェクトでオーバーライドてるpluckメソッドのお尻にくっつける感じで良さそうですね。
ちなみに今なにやってるのかっていうと、ハンドシェイクを承認した時に
時期がかぶっているハンドシェイクを自動的に非承認にするというロジックを書いています。
とはいえロジック自体はプロトタイプ版で作ってるので、それをいい感じに埋め込むだけだったはずなんですが、こういう想定外の仕様に時間ばっか取られて全然進まないっすね・・・・・・。
とりあえず、今しがたようやくハンドシェイクのバグフィクスが終わり、正常にメール配信はされるようになったので一段落です。
これ一ヶ月前に終わる話だったんだよな
これから、Web上での通知や、変更およびキャンセルを実装すれば、マネタイズ部分以外はは完成になります。そこにお金に絡む処理を噛ませるのは大変そうですが、とりあえずやってみたいと思います。のんびりとね。
Web上での通知って一言で言いましたけど実はまだ仕様が全然定まってないんですよね・・・・・・どうしよっか・・・・・・。