monteecristoo’s blog

https://twitter.com/irakaarozo

Laravel-Mix: node_modules 内のpackageのcssをコンパイルする

webpack.mix.js

で指定したコンパイルするscss内でインポートさせる

例:

node_module perfect-scrollbar の cssコンパイルしたい

  @import '~perfect-scrollbar/css/perfect-scrollbar.css';

参考:

stackoverflow.com

jenssegers/laravel-mongodb Basic Usage on cloud9 with php7 ⑩ 特定のcollectionのネストされたキーの値を取得する

mysql の select XX に当たるのが mongoDB では projection

f:id:monteecristoo:20181015183103p:plain

'user_id' => 1 は true という意味

参考:

github.com

jenssegers/laravel-mongodb を使わないで mongoDB php driver を使うなら

f:id:monteecristoo:20181015183310p:plain

f:id:monteecristoo:20181015183339p:plain

参考:

MongoDB\Collection::findOne() — PHP Library Manual 1.4

phpタブ内

Project Fields to Return from Query — MongoDB Manual

 

1段以上ネストされたキーから取得したい場合はドットでチェーンさせていく

f:id:monteecristoo:20181015185031p:plain

 

MongoDB PHP driver

新しい ObjectId を作る

@mongo shell

  ObjectId();

@php

  new MongoDB/BSON/ObjectId;

PHP側でnamespaceを使っていたら…

use MongoDB\BSON\ObjectID;

 

new ObjectID;

 

参考:

BSON — PHP Library Manual 1.4

PHP: MongoDB\BSON\ObjectId - Manual

vue-infinite-loading と laravel の連携

updated: 2018/10/3

@vue

f:id:monteecristoo:20181003045135p:plain

?page=1 のクエリを添えてGET

@laravel

f:id:monteecristoo:20181003045259p:plain

$request->page で欲しいpage番号を指定

forPage() はpage1 と page2以降で返り値の挙動に差があるエラーがあるので下記参照

github.com

gist.github.com

Laravel 5.x Factory と Faker で relational なモックアップを作る。

jenssegers/mongodb の mysql relationships で使用可能なことが確認済み

 

php artisan make:factory FACTORY_NAME

factory1

f:id:monteecristoo:20181001204738p:plain

 factory2

f:id:monteecristoo:20181001204844p:plain

seeds/DatabaseSeeder.php

f:id:monteecristoo:20181001204949p:plain

php artisan db:seed

これでfaker モックアップ + user と pixieImage のrelationship に整合性が取れたDBができる。

参考:

monteecristoo.hatenablog.com

jenssegers/laravel-mongodb Basic Usage on cloud9 with php7 ⑨ Mysql relationships で mongoDB と mysql 上のデータを合わせて返す。

updated: 2018/10/1

Mysql relationships については下記参照

monteecristoo.hatenablog.com

mongoDBとMysqlをjoin して返したい場合、mongoDBはjoinに対応していないので、

f:id:monteecristoo:20180930202813p:plain

PixieImage は mongoDB上のデータベース

user はmysql のデータベース

 さらにこれを pagination のように動作させたいなら collection は paginate が使えないので forPage() メソッドを使う。

参考:

laravel.com

php artisan db:seed でエラー

f:id:monteecristoo:20180927221040p:plain

データベーステーブルを適切に削除しなかったため。

solution:

php artisan migrate:refresh