Laravelをちょっとだけ触ってみた感想
自分のメモ用として書き残す。
主にここ(はじめての Laravel 5.1 | ララ帳 | ページ 4)を参照している。
非常にわかりやすい。
Laravelのバージョンは5
【.envがみつかんねー!】
私はcentosのサーバーを立ててmountしてNetBeansを使用しているのだが
.envファイルの存在に気づかず、2時間くらい無駄にしました。
プロジェクトルートにあるので、vim等で修正しましょう。
【atrisanコマンド migrationオプション】
古い情報:php artisan migrate:make create_users_table
新しい情報:php artisan make:migration create_users_table
↑で紹介してるサイトをみてれば大丈夫だが、ぐぐってると古い情報があるので気をつけよう。
【テーブル名とモデル名】
テーブル名は複数形で命名しましたが、モデル名は単数形で命名するのが慣例となっています
ややこしい。。。
こういう慣例って誰得なんだ?
【DBの作り方】
○マイグレーションの作成
「php artisan make:migration クラス名(スネーク) --create=テーブル名(スネーク)」
例:php artisan make:migration create_user_articles_table --create=user_articles
クラス名はキャメルに変換される。
マイグレーションを作るとID/insert_date/update_dateの3カラムが自動で設定されているので
追加編集する場合は/app/database/migrations/以下にあるファイルを編集すること。
【INSERT時の注意点】
Eloquentを用いたInsertは2種類ある。
モデルのインスタンスをnewする方法とcreateメソッドを使う方法。
・インスタンスをnewする方法
$article = new UserArticle();
$article->title = $title;
$article->body = $body;
$article->save();
・createメソッドを使う方法
$article = UserArticle::create(array('title' => $title, 'body' => $body));
両方同じ結果となるがcreateメソッドを使う場合は注意点がある。
マニュアル(Eloquent ORM 5.0.dev Laravel)にもあるがモデルに$fillable(更新して良いカラム)、$guarded(更新させないカラム)を設定する必要がある。
というか、設定しないとエラーになる。
・設定サンプル
class UserArticle extends Model
{
protected $guarded = array();
protected $fillable = array('title');
}
この記述だと、上記のcreateメソッドのサンプルの場合はtitleカラムに値が入り、bodyカラムには値が無い状態でINSERTが行われる。
とりあえず数日使ってみた感じ、新し物好きでなければLaravelを使う理由ないかなぁ
使いこなすと利点が見えてくるとは思うが、そこまでやる時間が無かったので今後のTODOタスクとして積んでおく。
vagrant+Laravelならこちら
Laravel homesteadを利用したLaravel 5 ローカル開発環境の構築 | hrendoh's memohrendoh's memo