Site icon บริษัท โค๊ดบี จำกัด

สอน Laravel 5 : ใช้งาน Controller ร่วมกับ Router

สอน-laravel-framework

สอน-laravel-framework

<h3>สอน Laravel &colon; ใช้งาน Controller ร่วมกับ Router<&sol;h4>&NewLine;<p><&sol;br><br &sol;>&NewLine;โดยทั่วไปแล้ว Controller คือหัวใจหลักของการทำงานใน PHP MVC Framework เป็นส่วนที่ทำหน้าที่เชื่อมโยง<br &sol;>&NewLine;ข้อมูลระหว่าง view และ model เป็นส่วนของการประมวลผลข้อมูล เช่น ส่งอีเมล สร้างก้อนข้อมูลส่งไปให้ view<br &sol;>&NewLine;แสดงผล สั่งบันทึกลงฐานข้อมูล บันทึกไฟล์ภาพลงบนเซิฟเวอร์ เป็นต้น<br &sol;>&NewLine;<&excl;--more--><&sol;p>&NewLine;<p><&sol;br><br &sol;>&NewLine;จากบทความที่แล้ว <a href&equals;"https&colon;&sol;&sol;www&period;codebee&period;co&period;th&sol;labs&sol;สอน-laravel-5-สร้าง-html-form-ส่งข้อมูลแบ&sol;" target&equals;"&lowbar;blank">สร้าง html form ส่งข้อมูลแบบ POST<&sol;a> เราได้ทดสอบส่งข้อมูลแบบ POST และคืนค่าตัวแปรกลับไปใน<br &sol;>&NewLine;ส่วนของ Router เลย ในบทความนี้เราจะเปลี่ยนให้รับค่าเข้ามาทำงานใน Controller แทน แล้วค่อยคืนค่าไปให้ view<br &sol;>&NewLine;<&sol;br><&sol;p>&NewLine;<h4>เตรียม View และ Router Method<&sol;h4>&NewLine;<ul>&NewLine;<li><strong>1&period;ให้สร้าง register&period;blade&period;php ไว้ที่ resources&sol;views&sol;register&period;blade&period;php<&sol;strong><&sol;li>&NewLine;<p>สร้าง html form รับค่าจากผู้ใช้งานและส่งค่าตัวแปร name และ &lowbar;token ส่งไปที่ register Router <&sol;p>&NewLine;<pre class&equals;"lang&colon;default decode&colon;true " title&equals;"resources&sol;views&sol;register&period;blade&period;php">&lt&semi;body&gt&semi; &NewLine;&lt&semi;div class&equals;"container"&gt&semi; &NewLine; &lt&semi;div class&equals;"title"&gt&semi;Hello &lbrace;&lbrace;&lbrace; &dollar;name or '' &rcub;&rcub;&rcub;&lt&semi;&sol;div&gt&semi; &NewLine; &lt&semi;div class&equals;"content"&gt&semi; &NewLine; &lt&semi;form action&equals;"register" method&equals;"post"&gt&semi; &NewLine; &lt&semi;input type&equals;"hidden" name&equals;"&lowbar;token" value&equals;"&lt&semi;&quest;php echo csrf&lowbar;token&lpar;&rpar; &quest;&gt&semi;"&gt&semi; &NewLine; &lt&semi;input type&equals;"text" name&equals;"name" value&equals;""&gt&semi; &NewLine; &lt&semi;input type&equals;"submit" value&equals;"สมัครสมาชิก"&gt&semi; &NewLine; &lt&semi;&sol;form&gt&semi; &NewLine; &lt&semi;&sol;div&gt&semi; &NewLine;&lt&semi;&sol;div&gt&semi; &NewLine;&lt&semi;&sol;body&gt&semi;<&sol;pre>&NewLine;<li><strong>2&period; จากนั้นใน app&sol;Http&sol;routes&period;php ให้สร้าง Register Method ดังนี้<&sol;strong><&sol;li>&NewLine;<p>กำหนดทิศทางของ uri ด้วยให้ค่า default page ทำงานที่ RegisterController เมธอดชื่อว่า index<br &sol;>&NewLine;กำหนดให้เมื่อมีการส่งค่าแบบ POST ใด ๆ มาที่เมธอด register ให้ไปทำงานที่ RegisterController<br &sol;>&NewLine;ในฟังก์ชั่นหรือ Method ชื่อว่า save<&sol;p>&NewLine;<pre class&equals;"lang&colon;default decode&colon;true " title&equals;"app&sol;Http&sol;routes&period;php"> &NewLine;Route&colon;&colon;get&lpar;'&sol;'&comma;"RegisterController&commat;index"&rpar;&semi; &NewLine;Route&colon;&colon;post&lpar;'register'&comma;"RegisterController&commat;save"&rpar;&semi; &NewLine;<&sol;pre>&NewLine;<li><strong>3&period; จากนั้นให้สร้าง RegisterController ไว้ที่ app&sol;Http&sol;Controllers&sol;RegisterController&period;php เขียนโค๊ดได้ดังนี้<&sol;strong><&sol;li>&NewLine;<p>กำหนดให้เมื่อเรียกใช้งาน index Method ให้ทำการคืนค่าโดยการโหลดหน้า register&period;blade&period;php<br &sol;>&NewLine;กำหนดให้เมื่อเรียกใช้งาน save Method จะรับค่าตัวแปรแบบ input POST จากนั้นทำการแปลงเป็น array<br &sol;>&NewLine;ก่อนคืนค่าโดยการโหลดหน้า register&period;blade&period;php <&sol;p>&NewLine;<pre class&equals;"lang&colon;default decode&colon;true " title&equals;"app&sol;Http&sol;Controllers&sol;RegisterController&period;php"> &NewLine;namespace App&bsol;Http&bsol;Controllers&semi; &NewLine;use App&bsol;Http&bsol;Controllers&bsol;Controller&semi; &NewLine;use Illuminate&bsol;Http&bsol;Request&semi; &NewLine;class RegisterController extends Controller &NewLine;&lbrace; &NewLine; public function index&lpar;&rpar; &NewLine;&Tab;&lbrace; &NewLine;&Tab;&Tab;return view&lpar;"register"&rpar;&semi;&Tab; &NewLine;&Tab;&rcub; &NewLine;&Tab;public function save&lpar;Request &dollar;request&rpar; &NewLine;&Tab;&lbrace; &NewLine;&Tab;&Tab;&dollar;name &equals; &dollar;request->input&lpar;'name'&rpar;&semi; &NewLine;&Tab;&Tab;&dollar;data &equals; array&lpar; &NewLine;&Tab;&Tab;&Tab;'name' &equals;&gt&semi; &dollar;name &NewLine;&Tab;&Tab;&rpar;&semi; &NewLine;&Tab;&Tab;return view&lpar;"register"&comma;&dollar;data&rpar;&semi;&Tab; &NewLine;&Tab;&rcub; &NewLine;&rcub;<&sol;pre>&NewLine;<li><strong>4&period; ในกรณีที่เราต้องการให้ส่งตัวแปร name มาได้ทั้งแบบ POST และ GET ให้เปลี่ยน register method<br &sol;>&NewLine;ใน app&sol;Http&sol;routes&period;php เป็น Router&colon;&colon;any&lpar;&rpar;&semi; <&sol;strong><&sol;p>&NewLine;<pre class&equals;"lang&colon;default decode&colon;true " >Route&colon;&colon;any&lpar;'register'&comma;"RegisterController&commat;save"&rpar;&semi;<&sol;pre>&NewLine;<p>จากนั้นในไฟล์ register&period;blade&period;php เราก็สามารถเปลี่ยน action เป็นแบบ get ได้<&sol;p>&NewLine;<pre class&equals;"lang&colon;default decode&colon;true " >&lt&semi;form action&equals;"register" method&equals;"get"&gt&semi;<&sol;pre>&NewLine;<&sol;ul>&NewLine;<p>ในหลาย ๆ บทความที่ผ่านมาเราทำความเข้าใจการใช้งานส่วนของการรับและแสดงผลข้อมูล กำหนด uri ในส่วน<br &sol;>&NewLine;ของ router มาจนถึงในบทความนี้เป็นการใช้งาน controller และ method ในบทความต่อไปเราจะมาลอง<br &sol;>&NewLine;ใช้งาน Laravel framework เพื่อบันทึกข้อมูลที่ได้จาก view ลงฐานข้อมูล โดยใช้ Laravel Model กันครับ<br &sol;>&NewLine;<&sol;br><&sol;p>&NewLine;

Exit mobile version