環境構築
- PHPはMAMPものを利用(anyenvからだとハマったので割愛・・・)
- /usr/local/binあたりにシンボリックリンク
- 複数のPHP環境があるとartisan実行時にこける
- post-update-cmdにPHPのパスを絶対指定で書く
- php artisan serveでローカルサーバ動かす場合はPHP >= 5.4で
SQLiteでmigrate
app/config/database.php
'default' => 'sqlite'
- 特に変更しなければ、production.sqliteで作成
- php artisan migrateでスキーマができてればSQLiteファイル生成
Seederを使って初期データ作成
モデルに個別のSeederを作成
app/database/seeds/UserTableSeeder.php
class UserTableSeeder extends Seeder {
public function run()
{
DB::table('users')->delete();
User::create(array(
'email' => 'info@example.com',
'name' => 'Test Man'
));
}
}
モデルごとのSeederを呼び出し
app/database/seeds/DatabaseSeeder.php
<?php
class DatabaseSeeder extends Seeder {
public function run()
{
Eloquent::unguard();
$this->call('UserTableSeeder');
}
}
db:seedで実行
php artisan db:seed
コントローラー周り
JSONを返す
app/routes.php
Route::get('users.json', function()
{
$users = User::all();
return Response::json($users);
});
疑問点
- クイックスタートは日本語の内容で
- クイックスタート通りにcreate_users_table.phpを生成
- この時、modelが生成される
- Eloquent(O/Rマッパー)を継承した状態だが、protectedでテーブル名が埋め込まれている
- クイックスタートでは自分でmodelファイル作ってるので、テーブル名の指定は不要
- FuelPHPのように実テーブル名がクラス名と合わない場合のためか