2017年1月31日火曜日

Lumen(Laravel)でview()に渡した値を参照する

どうも、俺です。

変数の値を
view()->share("myName", $myName);
のように渡したあとで、
「あ、やっぱまたview()から取って使いたい〜〜!」となった場合。

view()->shared("myName");
で取得できるさかいに。

以上でぇぇぇぇす!

2017年1月27日金曜日

LumenのEloquentでupdate()を呼ぶとMassAssignmentExceptionが出てまう

どうも、俺です。

最近は軽量PHPフレームワークのLumenを使っています。
(※バージョンはたぶん5.2。確認の仕方が分からない...)

最近もっぱらPHP界隈を賑わしているLaravelから派生したフレームワークで、
機能が少ない分、軽量で処理速度も速いそうです。

LaravelもLumenもデータベースモデルはEloquentという機能を使って開発することができ、僕もそれを使っています。

で、データを更新するために
$userObject->update(["name"=>"山田さん", "age"=>30]);
のように実装すると、

 MassAssignmentException
が発生し小一時間ハマりました。

この場合は、その該当のモデルクラスに

// 変更可能なカラム名
protected $fillable = ["name", "age", "その他カラム名"];

// または変更不可能なカラム名
protected $guarded = ["id", "create_at"];

のどちらか(または両方)を記述すればOKです。

ただ、上記の変数を指定しなくてもupdate()メソッドが使える場合もあり、
その理由は未だ不明です...。



ちなみに、insert()またはsave()メソッドでは上記の例外の発生は未確認です。




以上でぇぇぇぇす!

2017年1月23日月曜日

vimでファイルを開いている最中にdiffを見る

どうも、俺です。

2つのファイルにある差分をチェックする場合、
$ diff aaa.txt bbb.txt
またはvimをつかって

$ vimdiff aaa.txt bbb.txt
とやることが多いです。

今回は、vimでファイルを開いてしまった状態からdiff(vimdiff)を見る方法について。
とあるファイルをvimで開いてから、
:vsp ファイル名

または
:sp ファイル名

で、分割表示している状態で、
:windo diffthis
と打てばdiffを確認できます!

ちなみに、
:windo
は、vimで分割しているすべての画面に同じコマンドを打つ時に使えます。


以上でぇぇぇぇす!