新しいフォルダー

気になったことや勉強したことについて書いていきます

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