コントローラとモデルの作成
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'; }