Responses ( คลาสที่ใช้จัดการส่งข้อมูลกลับ )

บทนี้จะมาพูดถึงคลาส views กับ Response นะครับ <a name="basic-responses"></a> ## Basic Responses

การส่งค่าคืนแบบง่ายๆ

1 Route::get('/', function()
2 {
3 	return 'Hello World';
4 });

สร้างการส่งกลับเอง

คลาส Response สืบทอดมาจากคลาส Symfony\Component\HttpFoundation\Response เราจะมาดูเฉพาะเมทอดที่สำคัญกันนะครับ

ตัวอย่างการสร้างคำตอบกลับนะครับ

1 $response = Response::make($contents, $statusCode);
2 
3 $response->header('Content-Type', $value);
4 
5 return $response;

เพิ่ม cookie ลงไปในคำตอบกลับ

1 $cookie = Cookie::make('name', 'value');
2 
3 return Response::make($content)->withCookie($cookie);

<a name="redirects"></a> ## Redirects การส่งกลับ

ส่งกลับไปที่ route

1 return Redirect::to('user/login');

<br /><br /><br /> ส่งกลับไปพร้อมกับ ข้อความ

1 return Redirect::to('user/login')->with('message', 'Login Failed');

ส่งกลับไปที่ route ที่มีชื่อย่อตามตัวอย่าง

1 return Redirect::route('login');

ส่งกลับไปที่ route ที่มีชื่อย่อตามตัวอย่างพร้อมกับค่า

1 return Redirect::route('profile', array(1));

ส่งกลับไปที่ route ที่มีชื่อย่อตามตัวอย่างพร้อมกับตัวแปร

1 return Redirect::route('profile', array('user' => 1));

**ส่งกลับไปที่ฟังก์ชันใน controller **

1 return Redirect::action('HomeController@index');

ส่งกลับไปที่ฟังก์ชันใน controller พร้อมกับพารามิเตอร์

1 return Redirect::action('UserController@profile', array(1));

ส่งกลับไปที่ฟังก์ชันใน controller พร้อมกับตัวแปร

1 return Redirect::action('UserController@profile', array('user' => 1));

<a name="special-responses"></a> ## การส่งกลับแบบพิเศษ

สร้างการส่งกลับในรูปแบบของ json

1 return Response::json(array('name' => 'Steve', 'state' => 'CA'));

<br /><br /> สร้างการส่งกลับในรูปแบบของ jsonp

1 return Response::json(array('name' => 'Steve', 'state' => 'CA'))->setCallback(Inp\
2 ut::get('callback'));

สร้างการส่งกลับในรูปแบบของการดาวน์โหลดไฟล์

1 return Response::download($pathToFile);
2 
3 return Response::download($pathToFile, $name, $headers);

<a name="response-macros"></a> ## Response Macros

สิ่งที่เพิ่มเข้ามาใน 4.1 คือ เมทอดResponse::macro เป็นการสร้างรูปแบบคือการคืนค่า ในแบบที่เราต้องการ:

1 Response::macro('caps', function($value)
2 {
3 	return Response::make(strtoupper($value));
4 });

ส่วนการเรียกใช้นั้น

1 return Response::caps('foo');

เราต้องเก็บคำสั่ง ไว้ในไฟล์ที่แยกออกมา แล้วก็เพิ่มเข้าไปในไฟล์ start.php เพื่อเรียกใช้งานทุกครั้ง