達人プログラマー第2版
プログラマー必読書と言っても間違いないくらいの名著「達人プログラマー」の第2版が発売されました。
初版が発売された2000年11月30日から20年。
ソフトウェア開発に関する技術は発展しましたが、ソフトウェア開発における活動の原則は変わってませんね。
せっかく買ったのに1年近く放置してましたが、ぼちぼち読み始めようと思います。
達人プログラマー第2版、届いた。 pic.twitter.com/glod7jIaHM
— さわださとし@車好き酒好き料理好きひとり親エンジニア (@satoshis) 2020年12月2日
リツイート数ランキングサイト Buztter.com
Laravelの練習がてらにリツイート数・いいね数ランキングサイトを作りました。
TwTimzと同じようなの。
モデルの保存で Column not found エラーがでるときの対処方法
モデルを保存しようとしてエラーが発生。
Illuminate\Database\QueryException : SQLSTATE[42S22]: Column not found: 1054 Unknown column 'hoge' in 'field list'
テーブルには存在しないメンバ変数を設定していると、このエラーが発生する。
モデルにメンバ変数を持たせたいけどテーブルに保存する必要がない場合は、モデルのメンバ変数宣言でfalseを設定しておくと、save()を呼んだときに、そのメンバ変数を無視してくれる。
例えば、メンバ変数 $hoge を保存しない場合は、以下のように書く。
class Hoge extends Model { portected $fillable = { 'id', 'name', : }; public $hoge = false; }
設定を.envに書いたのに取得できないときの対処方法
Laravelで設定ファイルの内容を読み込みたいので、.envファイルに設定を記述した。
その内容を、config/hoge.php で読み込む。
return array(
'hoge' => env('HOGE', 'default-value'),
);
これを読み込む。
$hoge = config('hoge.hoge'); var_dump($hoge);
なぜか NULL が帰される。
ぐぐってみたら、キャッシュを参照しているらしい。
$ rm -f bootstrap/cache/config.php
今回はこれで取得できるようになった。
これでも解消しなかったら、上記ページによれば次のコマンドを実行すればいいらしい。
$ php composer.phar install $ php composer.phar dump-autoload $ php artisan clear-compiled $ php artisan optimize $ php artisan config:cache $ php artisan route:cache $ php artisan view:clear
Laravel+Vagrantで複数プロジェクトを動かす
まずは新しいプロジェクトを作る。
$ composer create-project --prefer-dist laravel/laravel tamae
Homestead.yaml に追加する。
sites: - map: nozomi.local to: /home/vagrant/code/nozomi/public - map: kanae.local to: /home/vagrant/code/kanae/public - map: tamae.local to: /home/vagrant/code/tamae/public
/etc/hosts にホスト名を追加する。
IPアドレスは、Homestead.yamlで指定したもの。
127.0.0.1 localhost 192.168.10.10 nozomi.local kanae.local tamae.local 255.255.255.255 broadcasthost ::1 localhost
provisionオプションを付けてVagrantを起動する。
$ vagrant up --provision
これでいける。