2014年09月24日

Laravel を使ってみる3

この前からの続き。

1.Controller の作成
  app/controllers にfirstController.php を作成。
<?php
// BaseController を継承しないとダメざます
class firstController extends BaseController{
  function show(){
    $action = '完全無視';
    return View::make('firstView')->with('action',$action);
  }
}

2.Route から Controller の呼び出し
  app/routes.php を下のように改変。
<?php

/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| Here is where you can register all of the routes for an application.
| It's a breeze. Simply tell Laravel the URIs it should respond to
| and give it the Closure to execute when that URI is requested.
|
*/

Route::get('/', function()
{
  return View::make('hello');
});
Route::get('second', function() {
  return '例によって、こういう文言は2バイトで書いちゃう!';
});

// Controller 使ったおかげでスッキリ!
// これだと、routes.php が膨れちゃうのを防げそうだすな
Route::get('curry', 'firstController@show');
// Route::get('curry', function(){
//   $action = '完全無視';
//   return View::make('firstView')->with('action',$action);
// });

3.動作確認
  http://localhost/curry で、前回と同じ内容が得られる。
curry.jpg

4.GET と POST のパラメータの受け渡し
  Jersey の時とおんなじ事を試してみる。
  app/routes.php を下のように改変。
<?php

/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| Here is where you can register all of the routes for an application.
| It's a breeze. Simply tell Laravel the URIs it should respond to
| and give it the Closure to execute when that URI is requested.
|
*/

Route::get('/', function()
{
  return View::make('hello');
});
Route::get('second', function() {
  return '例によって、こういう文言は2バイトで書いちゃう!';
});

// Controller 使ったおかげでスッキリ!
// これだと、routes.php が膨れちゃうのを防げそうだすな
Route::get('curry', 'firstController@show');
// Route::get('curry', function(){
//   $action = '完全無視';
//   return View::make('firstView')->with('action',$action);
// });

// パスの一部を引数として受け取る例
Route::get('curry2/{ext}', 'secondController@show1');

// クエリストリングを受け取る例
Route::get('curry2', 'secondController@show2');

// Json でのやりとり例
Route::post('curry2', 'secondController@show3');

  app/controllers/secondController.php を作成。
<?php
class secondController extends BaseController{
// パスの一部を引数として受け取る例
  function show1($ext){
    return View::make('secondView1')->with('action',$ext);
  }

// クエリストリングを受け取る例
  function show2(){
    $mes1 = Input::get('mes1');
    $mes2 = Input::get('mes2');
    return View::make('secondView2', array('mes1' => $mes1, 'mes2' => $mes2));
  }

// Json でのやりとり例
  function show3(){

//   この下の2行は同意
//   $data = json_decode( Request::getContent(), true );
    $data = Input::json()->all();

//   この下の2行は同意
//   $name = Input::get('name');
    $name = $data['name'];

//   この下の2行は同意
//   $age = Input::get('age');
    $age = $data['age'];

    return Response::json(array('name'=>$name, 'age'=>$age, 'weight'=>10000));
//   return View::make('secondView3', $data);
  }
}

  app/views/secondView1.php を作成。
<h1>インド人<?php echo $action ?>カレー</h1>
<p>いやしかし、このセンス笑っちゃう!</p>

  app/views/secondView2.php を作成。
<h1>インド人<?php echo $mes1 ?>カレー</h1>
<p><?php echo $mes2 ?></p>

5.「パスの一部を引数として受け取る例」の結果
curry21.jpg

6.「クエリストリングを受け取る例」の結果
curry22.jpg

7.Json でのやりとり例の結果
curry23.jpg


だんだん馴染んできますた。
Laravel、ちょっといーかもすれません。
posted by NERDY at 23:31 | Comment(0) | 技術 | このブログの読者になる | 更新情報をチェックする