laravel 開発日記 第8回 ~ 基本CRUDアプリを作ってみる(前編) ~
今回から、基本CRUDアプリを作ろうと思います。
■CRUD
https://ja.wikipedia.org/wiki/CRUD
とりあえず、「取引先種別」を管理するアプリを作ります。
まずは、設計から。
テーブルのカラムは以下のようにします。
■取引先種別(corporation_divisions)
・id
・name
・created_at
・updated_at
(1)モデルの作成
主にDB回りの制御を担当。
具体的には、
・マスアサインメント項目の定義
・スコープ(クエリ条件のカスタム)
・リレーションの定義
などを記述
php artisan make:model CorporationDivision
命名ルールは、アッパーキャメルケースの単数形。
–no-migrationオプションをつけなければ、自動でマイグレーションファイルが生成されます。
【作業ファイル:/app/CorporationDivision.php】 <?php namespace App; use Illuminate\Database\Eloquent\Model; class CorporationDivision extends Model { //マスアサインメント許可 protected $fillable = ['name']; }
とりあえず、マスアサインメントのみ追加。
(2)マイグレーションファイル修正
【作業ファイル:/database/migrations/2015_XX_XX_XXXXXX_create_corporation_divisions_table.php】 <?php use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class CreateCorporationDivisionsTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('corporation_divisions', function(Blueprint $table) { $table->increments('id'); $table->text('name'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::drop('corporation_divisions'); } }
で、マイグレーション
php artisan migrate
(3)ルーティング
Resourcefulルーティングを使うので、下記の一行追加。
【作業ファイル:/app/Http/routes.php】 Route::resource('corporationDivisions', 'CorporationDivisionsController');
命名ルールは、
ルート名:ローワーキャメルケース/複数形(xxxXxxxs)。
コントローラー名:アッパーキャメルケース/複数形 + Controller(XxxXxxxsController)にするのを注意。
■Laravelのルーティング書き方まとめ
http://qiita.com/michiomochi@github/items/de19c560bc1dc19d698c
(4)リクエストの作成
登録・編集時の項目管理を担当
php artisan make:request CorporationDivisionRequest
命名ルールは、アッパーキャメルケース/単数形 + Request
【作業ファイル:/app/Http/Requests/CorporationDivision.php】 <?php namespace App\Http\Requests; use App\Http\Requests\Request; class CorporationDivision extends Request { /** * Determine if the user is authorized to make this request. * * @return bool */ public function authorize() { return true; } /** * Get the validation rules that apply to the request. * * @return array */ public function rules() { return [ 'name' => 'required', ]; } }
nameは入力必須項目にしました。
長くなってきたので、今回はここまで。
次回は、コントローラーの作成とビューの作成を行います。
Discussion
New Comments
No comments yet. Be the first one!