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 เพื่อเรียกใช้งานทุกครั้ง