ふたりはララベル (Laravel PHP Framework)

PHPフレームワークのLaravelの体験記を書いていきます。こんなタイトルのブログですが萌え系アニメは一秒たりとも観たことがありません。

コントローラとモデルの作成

Laravelではコントローラとモデルは簡単に作成できるみたい。と、分かった風に書いているが私はLaravelがほぼ初めてのフレームワークだったりする。

例によって「artisan」を使うとコントローラを自動的に作ってくれる。とりあえず「UserController」という名前で作ってみる。

# php artisan controller:make UserController
Controller created successfully!


「app\controllers」に「UserController.php」が生成された。中のメソッドは全部空。ここに自分で処理を書いていく。

<?php

class UserController extends \BaseController {

        /**
         * Display a listing of the resource.
         *
         * @return Response
         */
        public function index()
        {
                //
        }

        /**
         * Show the form for creating a new resource.
         *
         * @return Response
         */
        public function create()
        {
                //
        }

        /**
         * Store a newly created resource in storage.
         *
         * @return Response
         */
        public function store()
        {
                //
        }

        /**
         * Display the specified resource.
         *
         * @param  int  $id
         * @return Response
         */
        public function show($id)
        {
                //
        }

        /**
         * Show the form for editing the specified resource.
         *
         * @param  int  $id
         * @return Response
         */
        public function edit($id)
        {
                //
        }

        /**
         * Update the specified resource in storage.
         *
         * @param  int  $id
         * @return Response
         */
        public function update($id)
        {
                //
        }

        /**
         * Remove the specified resource from storage.
         *
         * @param  int  $id
         * @return Response
         */
        public function destroy($id)
        {
                //
        }

}

Laravelのデータベース操作は「DB::table('テーブル名')」でもできるけど、Eloquent(エロクイント)モデルを使うと便利だった。例えば「titles」というテーブルをEloquentモデルで操作したいときは、「app\models」に「Table.php」というファイルを作り、中に一行書くだけで良い。「クラス名を小文字にして複数形」にしたものがテーブル名になるので、テーブル名の指定すらない。

class Title extends Eloquent {}

テーブル名を自分で指定したい時は下記のようにすればよい。

class Title extends Eloquent {

	protected $table = 'my_table';

}