{"id":1845,"date":"2022-08-10T04:28:57","date_gmt":"2022-08-09T21:28:57","guid":{"rendered":"https:\/\/www.bigdata.rmutt.ac.th\/?p=1845"},"modified":"2023-04-29T13:15:42","modified_gmt":"2023-04-29T06:15:42","slug":"%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%9e%e0%b8%b1%e0%b8%92%e0%b8%99%e0%b8%b2%e0%b8%a3%e0%b8%b0%e0%b8%9a%e0%b8%9a%e0%b8%94%e0%b9%89%e0%b8%a7%e0%b8%a2-yii2-%e0%b8%95%e0%b8%ad%e0%b8%99%e0%b8%97%e0%b8%b5-3","status":"publish","type":"post","link":"https:\/\/www.bigdata.rmutt.ac.th\/?p=1845","title":{"rendered":"\u0e01\u0e32\u0e23\u0e1e\u0e31\u0e12\u0e19\u0e32\u0e23\u0e30\u0e1a\u0e1a\u0e14\u0e49\u0e27\u0e22 Yii2: \u0e15\u0e2d\u0e19\u0e17\u0e35\u0e48 3 Controller Action \u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e31\u0e1a\u0e41\u0e15\u0e48\u0e07 Route \u0e40\u0e1a\u0e37\u0e49\u0e2d\u0e07\u0e15\u0e49\u0e19"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">\u0e04\u0e27\u0e32\u0e21\u0e40\u0e14\u0e34\u0e21\u0e15\u0e2d\u0e19\u0e17\u0e35\u0e48\u0e41\u0e25\u0e49\u0e27<\/h2>\n\n\n\n<p>\u0e43\u0e04\u0e23\u0e22\u0e31\u0e07\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49 initail project \u0e43\u0e2b\u0e49\u0e44\u0e1b\u0e14\u0e39\u0e1a\u0e17\u0e04\u0e27\u0e32\u0e21\u0e22\u0e49\u0e2d\u0e19\u0e2b\u0e25\u0e31\u0e07\u0e44\u0e14\u0e49\u0e17\u0e35\u0e48 <a href=\"https:\/\/www.bigdata.rmutt.ac.th\/?p=1754\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.bigdata.rmutt.ac.th\/?p=1754<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0e40\u0e02\u0e49\u0e32\u0e43\u0e08\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07 Controller \u0e41\u0e25\u0e30 Action<\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.bigdata.rmutt.ac.th\/wp-content\/uploads\/2022\/08\/Controller-Action-View.jpg\" alt=\"\" class=\"wp-image-1847\" width=\"583\" height=\"226\"\/><figcaption>\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e31\u0e21\u0e1e\u0e31\u0e19\u0e18\u0e4c\u0e02\u0e2d\u0e07 Controller \u0e41\u0e25\u0e30 Action<\/figcaption><\/figure><\/div>\n\n\n<p>\u0e08\u0e32\u0e01\u0e23\u0e39\u0e1b\u0e14\u0e49\u0e32\u0e19\u0e1a\u0e19 \u0e43\u0e2b\u0e49\u0e40\u0e23\u0e32\u0e25\u0e2d\u0e07\u0e40\u0e1b\u0e34\u0e14\u0e44\u0e1f\u0e25\u0e4c frontend\\controllers\\SiteController.php \u0e02\u0e36\u0e49\u0e19\u0e21\u0e32 \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e14\u0e39\u0e2b\u0e25\u0e31\u0e01\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19 \u0e2a\u0e31\u0e07\u0e40\u0e01\u0e15\u0e44\u0e14\u0e49\u0e27\u0e48\u0e32\u0e08\u0e30\u0e21\u0e35 function actionXxx() \u0e2d\u0e22\u0e39\u0e48 \u0e40\u0e0a\u0e48\u0e19 actionIndex() \u0e40\u0e1b\u0e47\u0e19\u0e15\u0e49\u0e19<\/p>\n\n\n\n<p>\u0e1b\u0e01\u0e15\u0e34\u0e41\u0e25\u0e49\u0e27 Yii2 \u0e17\u0e33\u0e01\u0e32\u0e23 route \u0e42\u0e14\u0e22\u0e43\u0e0a\u0e49 keyword \u0e02\u0e2d\u0e07 function actionXxx() \u0e40\u0e1b\u0e47\u0e19\u0e2b\u0e25\u0e31\u0e01 (\u0e15\u0e49\u0e2d\u0e07\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e04\u0e33\u0e27\u0e48\u0e32 action \u0e19\u0e33\u0e2b\u0e19\u0e49\u0e32\u0e0a\u0e37\u0e48\u0e2d\u0e02\u0e2d\u0e07 function) \u0e40\u0e0a\u0e48\u0e19 actionIndex() \u0e43\u0e19 SiteController \u0e08\u0e30\u0e16\u0e39\u0e01\u0e40\u0e02\u0e49\u0e32\u0e16\u0e36\u0e07\u0e42\u0e14\u0e22<\/p>\n\n\n\n<p>\/index.php?r=<strong>site<\/strong>\/index<\/p>\n\n\n\n<p>\u0e16\u0e49\u0e32\u0e40\u0e1b\u0e47\u0e19 index \u0e2d\u0e22\u0e39\u0e48\u0e41\u0e25\u0e49\u0e27 \u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e40\u0e02\u0e49\u0e32\u0e16\u0e36\u0e07\u0e44\u0e14\u0e49\u0e42\u0e14\u0e22\u0e44\u0e21\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e43\u0e2a\u0e48 index \u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21\u0e40\u0e02\u0e49\u0e32\u0e44\u0e1b \u0e2b\u0e23\u0e37\u0e2d\u0e1e\u0e39\u0e14\u0e07\u0e48\u0e32\u0e22 \u0e46 \u0e27\u0e48\u0e32 <\/p>\n\n\n\n<p>\/index.php?r=<strong>site<\/strong>\/index \u0e40\u0e17\u0e35\u0e22\u0e1a\u0e40\u0e17\u0e48\u0e32 \/index.php?r=<strong>site<\/strong><\/p>\n\n\n\n<p>\u0e04\u0e33\u0e27\u0e48\u0e32 site \u0e1a\u0e19 URL \u0e21\u0e32\u0e08\u0e32\u0e01\u0e0a\u0e37\u0e48\u0e2d SiteController \u0e19\u0e31\u0e48\u0e19\u0e40\u0e2d\u0e07\u0e04\u0e23\u0e31\u0e1a \u0e2a\u0e31\u0e07\u0e40\u0e01\u0e15\u0e27\u0e48\u0e32\u0e1a\u0e19 URL \u0e08\u0e30\u0e43\u0e0a\u0e49\u0e15\u0e31\u0e27\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e40\u0e25\u0e47\u0e01\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14 \u0e21\u0e32\u0e25\u0e2d\u0e07\u0e01\u0e31\u0e19\u0e14\u0e35\u0e01\u0e27\u0e48\u0e32 \u0e43\u0e2b\u0e49\u0e40\u0e23\u0e32\u0e40\u0e1e\u0e34\u0e48\u0e21 function actionB() \u0e40\u0e02\u0e49\u0e32\u0e44\u0e1b\u0e43\u0e19 SiteController \u0e14\u0e31\u0e07\u0e19\u0e35\u0e49<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code> public function actionB(){\n        echo \"Hello Yii2\";\n    }<\/code><\/pre>\n\n\n\n<p>\u0e25\u0e2d\u0e07\u0e40\u0e02\u0e49\u0e32 URL \u0e44\u0e1b\u0e17\u0e35\u0e48 <a rel=\"noreferrer noopener\" href=\"http:\/\/localhost\/my_app\/frontend\/web\/index.php?r=site\/hello\" target=\"_blank\">http:\/\/localhost\/my_app\/frontend\/web\/index.php?r=site\/b<\/a> \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e17\u0e14\u0e2a\u0e2d\u0e1a\u0e14\u0e39 \u0e08\u0e30\u0e2a\u0e31\u0e07\u0e40\u0e01\u0e15\u0e1c\u0e25\u0e25\u0e31\u0e1e\u0e18\u0e4c\u0e44\u0e14\u0e49\u0e27\u0e48\u0e32 \u0e23\u0e30\u0e1a\u0e1a\u0e08\u0e30\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e04\u0e33\u0e27\u0e48\u0e32 Hello Yii2 \u0e40\u0e1b\u0e47\u0e19\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e1b\u0e01\u0e15\u0e34 \u0e42\u0e14\u0e22\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49 render theme \u0e17\u0e35\u0e48\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e02\u0e49\u0e2d\u0e07\u0e40\u0e25\u0e22 \u0e08\u0e30\u0e2a\u0e2d\u0e14\u0e04\u0e25\u0e49\u0e2d\u0e07\u0e01\u0e31\u0e1a\u0e20\u0e32\u0e1e\u0e14\u0e49\u0e32\u0e19\u0e1a\u0e19\u0e27\u0e48\u0e32 \u0e40\u0e23\u0e32\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e1e\u0e48\u0e19 text \u0e17\u0e35\u0e48\u0e40\u0e23\u0e32\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e2d\u0e2d\u0e01\u0e21\u0e32\u0e1a\u0e19\u0e2b\u0e19\u0e49\u0e32\u0e40\u0e27\u0e47\u0e1a\u0e02\u0e2d\u0e07\u0e40\u0e23\u0e32\u0e44\u0e14\u0e49\u0e42\u0e14\u0e22\u0e15\u0e23\u0e07 \u0e42\u0e14\u0e22\u0e43\u0e0a\u0e49\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07 echo \u0e2b\u0e23\u0e37\u0e2d print \u0e44\u0e14\u0e49\u0e40\u0e25\u0e22 (\u0e41\u0e15\u0e48\u0e27\u0e34\u0e18\u0e35\u0e19\u0e35\u0e49 default \u0e02\u0e2d\u0e07\u0e23\u0e30\u0e1a\u0e1a\u0e08\u0e30\u0e43\u0e2b\u0e49\u0e40\u0e23\u0e32 print \u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e2d\u0e2d\u0e01\u0e21\u0e32\u0e44\u0e21\u0e48\u0e22\u0e32\u0e27\u0e21\u0e32\u0e01\u0e19\u0e31\u0e01 \u0e16\u0e49\u0e32\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23 print text \u0e22\u0e32\u0e27 \u0e46 \u0e43\u0e2b\u0e49\u0e42\u0e22\u0e19\u0e44\u0e1b\u0e43\u0e2b\u0e49 view \u0e41\u0e2a\u0e14\u0e07\u0e1c\u0e25\u0e41\u0e17\u0e19 \u0e0b\u0e36\u0e48\u0e07\u0e08\u0e30\u0e01\u0e25\u0e48\u0e32\u0e27\u0e15\u0e48\u0e2d\u0e44\u0e1b)<\/p>\n\n\n\n<p>\u0e25\u0e2d\u0e07\u0e40\u0e1e\u0e34\u0e48\u0e21 function actionA() \u0e40\u0e02\u0e49\u0e32\u0e44\u0e1b\u0e43\u0e19 SiteController \u0e14\u0e31\u0e07\u0e19\u0e35\u0e49<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public function actionA(){\n        return $this-&gt;render(\"a\");\n    }<\/code><\/pre>\n\n\n\n<p>\u0e25\u0e2d\u0e07\u0e40\u0e02\u0e49\u0e32 URL \u0e17\u0e35\u0e48 <a rel=\"noreferrer noopener\" href=\"http:\/\/localhost\/my_app\/frontend\/web\/index.php?r=site\/a\" target=\"_blank\">http:\/\/localhost\/my_app\/frontend\/web\/index.php?r=site\/a<\/a> \u0e15\u0e2d\u0e19\u0e19\u0e35\u0e49\u0e17\u0e38\u0e01\u0e04\u0e19\u0e08\u0e30\u0e15\u0e49\u0e2d\u0e07\u0e44\u0e14\u0e49 error message \u0e15\u0e32\u0e21\u0e19\u0e35\u0e49<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>View not Found \u2013 yii\\base\\ViewNotFoundException\nThe view file does not exist: C:\\xampp\\htdocs\\my_app\\frontend\\views\\site\\a.php<\/code><\/pre>\n\n\n\n<p>\u0e08\u0e32\u0e01\u0e23\u0e39\u0e1b\u0e14\u0e49\u0e32\u0e19\u0e1a\u0e19\u0e16\u0e49\u0e32\u0e40\u0e23\u0e32\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23 render(&#8220;a&#8221;) \u0e40\u0e23\u0e32\u0e08\u0e33\u0e40\u0e1b\u0e47\u0e19\u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35 page PHP \u0e23\u0e2d\u0e07\u0e23\u0e31\u0e1a\u0e44\u0e27\u0e49\u0e43\u0e19 View \u0e14\u0e49\u0e27\u0e22 \u0e43\u0e19\u0e17\u0e35\u0e48\u0e19\u0e35\u0e49\u0e01\u0e47\u0e04\u0e37\u0e2d View \u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e43\u0e19 site \u0e19\u0e31\u0e48\u0e19\u0e40\u0e2d\u0e07\u0e04\u0e23\u0e31\u0e1a (\u0e21\u0e31\u0e19\u0e08\u0e30\u0e2a\u0e2d\u0e14\u0e04\u0e25\u0e49\u0e2d\u0e07\u0e01\u0e31\u0e19 \u0e40\u0e1e\u0e23\u0e32\u0e30\u0e40\u0e23\u0e32\u0e01\u0e33\u0e25\u0e31\u0e07\u0e40\u0e25\u0e48\u0e19\u0e2d\u0e22\u0e39\u0e48\u0e04\u0e23\u0e31\u0e1a SiteController) \u0e14\u0e31\u0e07\u0e19\u0e31\u0e49\u0e19\u0e43\u0e2b\u0e49\u0e44\u0e1b\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e44\u0e1f\u0e25\u0e4c frontend\\views\\site\\a.php \u0e41\u0e25\u0e30\u0e43\u0e2a\u0e48\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e2d\u0e30\u0e44\u0e23\u0e25\u0e07\u0e44\u0e1b\u0e01\u0e47\u0e44\u0e14\u0e49\u0e40\u0e0a\u0e48\u0e19<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>This is \"a\" page<\/code><\/pre>\n\n\n\n<p>\u0e2b\u0e25\u0e31\u0e07\u0e08\u0e32\u0e01\u0e19\u0e31\u0e49\u0e19\u0e25\u0e2d\u0e07\u0e23\u0e31\u0e19\u0e43\u0e2b\u0e21\u0e48\u0e04\u0e23\u0e31\u0e1a \u0e40\u0e23\u0e32\u0e08\u0e30\u0e15\u0e49\u0e2d\u0e07\u0e44\u0e14\u0e49\u0e2b\u0e19\u0e49\u0e32\u0e08\u0e2d\u0e14\u0e31\u0e07\u0e23\u0e39\u0e1b\u0e14\u0e49\u0e32\u0e19\u0e25\u0e48\u0e32\u0e07<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1137\" height=\"169\" src=\"https:\/\/www.bigdata.rmutt.ac.th\/wp-content\/uploads\/2022\/08\/test_a_page.png\" alt=\"\" class=\"wp-image-1877\"\/><\/figure><\/div>\n\n\n<p>\u0e25\u0e2d\u0e07\u0e17\u0e14\u0e2a\u0e2d\u0e1a\u0e2a\u0e23\u0e49\u0e32\u0e07 actionC() \u0e41\u0e15\u0e48\u0e43\u0e0a\u0e49\u0e27\u0e34\u0e18\u0e35\u0e01\u0e32\u0e23 render \u0e2d\u0e35\u0e01\u0e41\u0e1a\u0e1a\u0e2b\u0e19\u0e36\u0e48\u0e07\u0e14\u0e31\u0e07\u0e19\u0e35\u0e49 \u0e41\u0e25\u0e30\u0e2d\u0e22\u0e48\u0e32\u0e25\u0e37\u0e21\u0e44\u0e1b\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e44\u0e1f\u0e25\u0e4c frontend\\views\\site\\c.php \u0e41\u0e25\u0e30\u0e43\u0e2a\u0e48\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e2d\u0e30\u0e44\u0e23\u0e25\u0e07\u0e44\u0e1b\u0e01\u0e47\u0e44\u0e14\u0e49\u0e14\u0e49\u0e27\u0e22\u0e19\u0e30\u0e04\u0e23\u0e31\u0e1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code> public function actionC(){\n        return $this-&gt;renderPartial(\"c\");\n    }<\/code><\/pre>\n\n\n\n<p>\u0e16\u0e49\u0e32\u0e25\u0e2d\u0e07\u0e17\u0e14\u0e2a\u0e2d\u0e1a\u0e41\u0e25\u0e49\u0e27 \u0e08\u0e30\u0e1b\u0e23\u0e32\u0e01\u0e0f\u0e27\u0e48\u0e32\u0e08\u0e30\u0e44\u0e14\u0e49\u0e2b\u0e19\u0e49\u0e32\u0e08\u0e2d\u0e14\u0e31\u0e07\u0e23\u0e39\u0e1b\u0e15\u0e48\u0e2d\u0e44\u0e1b\u0e19\u0e35\u0e49 \u0e2a\u0e31\u0e07\u0e40\u0e01\u0e15\u0e44\u0e14\u0e49\u0e27\u0e48\u0e32 \u0e2b\u0e19\u0e49\u0e32\u0e08\u0e2d\u0e19\u0e35\u0e49\u0e08\u0e30\u0e44\u0e21\u0e48\u0e21\u0e35 layout theme \u0e40\u0e02\u0e49\u0e32\u0e21\u0e32\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e02\u0e49\u0e2d\u0e07\u0e40\u0e25\u0e22 \u0e40\u0e2b\u0e21\u0e37\u0e2d\u0e19\u0e40\u0e23\u0e32\u0e40\u0e02\u0e35\u0e22\u0e19\u0e44\u0e1f\u0e25\u0e4c\u0e43\u0e2b\u0e21\u0e48\u0e2a\u0e14 \u0e46 \u0e15\u0e31\u0e49\u0e07\u0e41\u0e15\u0e48\u0e41\u0e23\u0e01 \u0e40\u0e1e\u0e35\u0e22\u0e07\u0e41\u0e04\u0e48\u0e43\u0e0a\u0e49\u0e01\u0e32\u0e23 route \u0e40\u0e1b\u0e47\u0e19 index.php?r=site\/c \u0e40\u0e17\u0e48\u0e32\u0e19\u0e31\u0e49\u0e19\u0e04\u0e23\u0e31\u0e1a \u0e1b\u0e01\u0e15\u0e34\u0e1c\u0e21\u0e08\u0e30\u0e43\u0e0a\u0e49\u0e43\u0e19\u0e01\u0e23\u0e13\u0e35\u0e17\u0e35\u0e48\u0e40\u0e23\u0e32\u0e44\u0e21\u0e48\u0e2d\u0e22\u0e32\u0e01\u0e44\u0e1b\u0e22\u0e38\u0e48\u0e07\u0e01\u0e31\u0e1a template \u0e43\u0e19 theme \u0e02\u0e2d\u0e07\u0e40\u0e23\u0e32 \u0e40\u0e0a\u0e48\u0e19 \u0e2a\u0e23\u0e49\u0e32\u0e07 JSON API \u0e40\u0e1b\u0e47\u0e19\u0e15\u0e49\u0e19 \u0e01\u0e47\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e17\u0e33\u0e44\u0e14\u0e49<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"498\" height=\"82\" src=\"https:\/\/www.bigdata.rmutt.ac.th\/wp-content\/uploads\/2022\/08\/action_c_test.png\" alt=\"\" class=\"wp-image-1880\"\/><\/figure><\/div>\n\n\n<p>\u0e19\u0e2d\u0e01\u0e08\u0e32\u0e01\u0e19\u0e35\u0e49\u0e40\u0e23\u0e32\u0e22\u0e31\u0e07\u0e2a\u0e48\u0e07\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e21\u0e32\u0e17\u0e35\u0e48 view \u0e17\u0e35\u0e48\u0e40\u0e23\u0e32\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e08\u0e32\u0e01 controller \u0e44\u0e14\u0e49\u0e2d\u0e35\u0e01\u0e14\u0e49\u0e27\u0e22 \u0e40\u0e0a\u0e48\u0e19 return $this-&gt;render(&#8216;say&#8217;, [&#8216;message&#8217; =&gt; $message]); \u0e40\u0e1b\u0e47\u0e19\u0e01\u0e32\u0e23\u0e2a\u0e48\u0e07 message \u0e44\u0e1b\u0e43\u0e2b\u0e49 view \u0e17\u0e35\u0e48\u0e0a\u0e37\u0e48\u0e2d\u0e27\u0e48\u0e32 say \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e19\u0e33\u0e15\u0e31\u0e27\u0e41\u0e1b\u0e23 message \u0e44\u0e1b\u0e43\u0e0a\u0e49\u0e15\u0e48\u0e2d\u0e44\u0e14\u0e49 \u0e16\u0e49\u0e32\u0e40\u0e23\u0e32\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e43\u0e19 view (\u0e1b\u0e01\u0e15\u0e34\u0e41\u0e25\u0e49\u0e27\u0e08\u0e30\u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35\u0e01\u0e32\u0e23\u0e2a\u0e48\u0e07\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e23\u0e30\u0e2b\u0e27\u0e48\u0e32\u0e07 controller \u0e01\u0e31\u0e1a view \u0e2d\u0e22\u0e39\u0e48\u0e41\u0e25\u0e49\u0e27\u0e04\u0e23\u0e31\u0e1a \u0e43\u0e19\u0e2a\u0e16\u0e32\u0e19\u0e01\u0e32\u0e23\u0e13\u0e4c\u0e08\u0e23\u0e34\u0e07)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0e25\u0e2d\u0e07\u0e1b\u0e23\u0e31\u0e1a\u0e41\u0e15\u0e48\u0e07 Routing \u0e43\u0e2b\u0e49\u0e2a\u0e27\u0e22\u0e07\u0e32\u0e21 \u0e42\u0e14\u0e22\u0e17\u0e33\u0e40\u0e1b\u0e47\u0e19 Pretty URL <\/h2>\n\n\n\n<p>\u0e1b\u0e01\u0e15\u0e34\u0e41\u0e25\u0e49\u0e27 URL \u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e41\u0e2a\u0e14\u0e07\u0e1c\u0e25 \u0e40\u0e1b\u0e47\u0e19\u0e0a\u0e48\u0e2d\u0e07\u0e17\u0e32\u0e07\u0e2b\u0e19\u0e36\u0e48\u0e07\u0e17\u0e35\u0e48\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e40\u0e2b\u0e47\u0e19\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e44\u0e14\u0e49 \u0e40\u0e0a\u0e48\u0e19 \u0e40\u0e02\u0e35\u0e22\u0e19\u0e14\u0e49\u0e27\u0e22\u0e20\u0e32\u0e29\u0e32\u0e2d\u0e30\u0e44\u0e23 \u0e21\u0e35\u0e15\u0e31\u0e27\u0e41\u0e1b\u0e23\u0e43\u0e14\u0e2a\u0e48\u0e07\u0e44\u0e1b\u0e1a\u0e49\u0e32\u0e07 \u0e40\u0e1b\u0e47\u0e19\u0e15\u0e49\u0e19 \u0e08\u0e30\u0e40\u0e1b\u0e47\u0e19\u0e01\u0e32\u0e23\u0e14\u0e35\u0e01\u0e27\u0e48\u0e32\u0e16\u0e49\u0e32\u0e40\u0e23\u0e32\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e0b\u0e48\u0e2d\u0e19\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e1e\u0e27\u0e01\u0e19\u0e35\u0e49\u0e44\u0e14\u0e49<\/p>\n\n\n\n<p>Yii2 \u0e44\u0e14\u0e49\u0e21\u0e35\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e01\u0e32\u0e23\u0e17\u0e33 Pretty URL \u0e44\u0e27\u0e49 \u0e0b\u0e36\u0e48\u0e07 Pretty URL \u0e04\u0e37\u0e2d\u0e17\u0e33\u0e43\u0e2b\u0e49 URL \u0e19\u0e31\u0e49\u0e19\u0e2a\u0e31\u0e49\u0e19 \u0e01\u0e23\u0e30\u0e0a\u0e31\u0e1a \u0e41\u0e25\u0e30\u0e0b\u0e48\u0e2d\u0e19\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e1a\u0e32\u0e07\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e44\u0e14\u0e49 \u0e1b\u0e01\u0e15\u0e34\u0e41\u0e25\u0e49\u0e27 Yii2 \u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e1b\u0e23\u0e31\u0e1a\u0e41\u0e15\u0e48\u0e07 Routing \u0e44\u0e14\u0e49\u0e15\u0e32\u0e21\u0e17\u0e35\u0e48\u0e40\u0e23\u0e32\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23 \u0e41\u0e15\u0e48\u0e43\u0e19\u0e17\u0e35\u0e48\u0e19\u0e35\u0e49\u0e1c\u0e39\u0e49\u0e40\u0e02\u0e35\u0e22\u0e19\u0e02\u0e2d\u0e43\u0e0a\u0e49\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e17\u0e35\u0e48\u0e21\u0e32\u0e1e\u0e23\u0e49\u0e2d\u0e21\u0e01\u0e31\u0e1a Yii2 \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e44\u0e21\u0e48\u0e43\u0e2b\u0e49 dev \u0e1b\u0e23\u0e31\u0e1a\u0e41\u0e15\u0e48\u0e07\u0e2d\u0e30\u0e44\u0e23\u0e22\u0e38\u0e48\u0e07\u0e22\u0e32\u0e01\u0e21\u0e32\u0e01 \u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e14\u0e39\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21\u0e44\u0e14\u0e49\u0e17\u0e35\u0e48 <a href=\"https:\/\/www.yiiframework.com\/doc\/guide\/2.0\/en\/runtime-routing\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.yiiframework.com\/doc\/guide\/2.0\/en\/runtime-routing<\/a><\/p>\n\n\n\n<p>\u0e1e\u0e23\u0e49\u0e2d\u0e21\u0e41\u0e25\u0e49\u0e27 \u0e25\u0e38\u0e22\u0e01\u0e31\u0e19\u0e40\u0e25\u0e22 \u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19\u0e40\u0e1b\u0e34\u0e14\u0e44\u0e1f\u0e25\u0e4c frontend\\config\\main.php \u0e41\u0e25\u0e30\u0e41\u0e01\u0e49\u0e44\u0e02\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e43\u0e19\u0e2a\u0e48\u0e27\u0e19 URL Manager \u0e43\u0e2b\u0e49\u0e40\u0e1b\u0e47\u0e19\u0e14\u0e31\u0e07\u0e19\u0e35\u0e49<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\n        'urlManager' =&gt; &#91;\n            'enablePrettyUrl' =&gt; true,\n            'showScriptName' =&gt; false,\n            'rules' =&gt; array(\n                '&lt;controller:\\w+&gt;\/&lt;id:\\d+&gt;' =&gt; '&lt;controller&gt;\/view',\n                '&lt;controller:\\w+&gt;\/&lt;action:\\w+&gt;\/&lt;id:\\d+&gt;' =&gt; '&lt;controller&gt;\/&lt;action&gt;',\n                '&lt;controller:\\w+&gt;\/&lt;action:\\w+&gt;' =&gt; '&lt;controller&gt;\/&lt;action&gt;',\n                'module\/&lt;module:\\w+&gt;\/&lt;controller:\\w+&gt;\/&lt;action:\\w+&gt;' =&gt; '&lt;module&gt;\/&lt;controller&gt;\/&lt;action&gt;',\n            ),\n        ],<\/code><\/pre>\n\n\n\n<p>\u0e43\u0e19\u0e01\u0e23\u0e13\u0e35\u0e17\u0e35\u0e48\u0e40\u0e1b\u0e47\u0e19 Apache \u0e43\u0e2b\u0e49\u0e17\u0e33\u0e01\u0e32\u0e23\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e44\u0e1f\u0e25\u0e4c frontend\\web\\.htaccess (\u0e44\u0e1f\u0e25\u0e4c\u0e0a\u0e37\u0e48\u0e2d\u0e27\u0e48\u0e32 .htaccess \u0e21\u0e35 . \u0e19\u0e33\u0e2b\u0e19\u0e49\u0e32\u0e14\u0e49\u0e27\u0e22\u0e19\u0e30\u0e04\u0e23\u0e31\u0e1a) \u0e41\u0e25\u0e30\u0e43\u0e2b\u0e49\u0e40\u0e1e\u0e34\u0e48\u0e21 code \u0e15\u0e48\u0e2d\u0e44\u0e1b\u0e19\u0e35\u0e49\u0e25\u0e07\u0e44\u0e1b \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e1b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23 rewrite rule (\u0e42\u0e14\u0e22 default XAMPP \u0e08\u0e30\u0e40\u0e1b\u0e34\u0e14 mod RewriteRule \u0e43\u0e2b\u0e49\u0e2d\u0e22\u0e39\u0e48\u0e41\u0e25\u0e49\u0e27)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>RewriteEngine on\n# If a directory or a file exists, use it directly\nRewriteCond %{REQUEST_FILENAME} !-f\nRewriteCond %{REQUEST_FILENAME} !-d\n# Otherwise forward it to index.php\nRewriteRule . index.php<\/code><\/pre>\n\n\n\n<p>\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e1b\u0e23\u0e31\u0e1a\u0e41\u0e25\u0e49\u0e27\u0e43\u0e2b\u0e49\u0e25\u0e2d\u0e07\u0e17\u0e14\u0e2a\u0e2d\u0e1a\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19\u0e14\u0e39 \u0e08\u0e30\u0e2a\u0e31\u0e07\u0e40\u0e01\u0e15\u0e27\u0e48\u0e32 URL \u0e41\u0e1a\u0e1a\u0e40\u0e15\u0e47\u0e21\u0e40\u0e0a\u0e48\u0e19 index.php?r=site\/a \u0e08\u0e30\u0e16\u0e39\u0e01\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e40\u0e1b\u0e47\u0e19 \/site\/a \u0e41\u0e17\u0e19 \u0e42\u0e14\u0e22 URL \u0e40\u0e15\u0e47\u0e21 \u0e46 \u0e43\u0e19\u0e17\u0e35\u0e48\u0e19\u0e35\u0e49\u0e04\u0e37\u0e2d http:\/\/localhost\/my_app\/frontend\/web\/site\/a \u0e0b\u0e36\u0e48\u0e07\u0e17\u0e33\u0e43\u0e2b\u0e49\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e0b\u0e48\u0e2d\u0e19\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e15\u0e48\u0e32\u0e07 \u0e46 \u0e44\u0e14\u0e49 \u0e41\u0e25\u0e30\u0e21\u0e35\u0e04\u0e27\u0e32\u0e21\u0e01\u0e23\u0e30\u0e0a\u0e31\u0e1a\u0e1e\u0e2d\u0e2a\u0e21\u0e04\u0e27\u0e23 \u0e25\u0e2d\u0e07\u0e17\u0e14\u0e2a\u0e2d\u0e1a\u0e44\u0e1b\u0e17\u0e35\u0e48 http:\/\/localhost\/my_app\/frontend\/web\/site\/about \u0e41\u0e25\u0e30\u0e15\u0e33\u0e41\u0e2b\u0e19\u0e48\u0e07\u0e2d\u0e37\u0e48\u0e19 \u0e46 \u0e14\u0e39\u0e04\u0e23\u0e31\u0e1a<\/p>\n\n\n\n<p>\u0e43\u0e19\u0e17\u0e35\u0e48\u0e19\u0e35\u0e49\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e1b\u0e23\u0e31\u0e1a\u0e17\u0e35\u0e48\u0e1d\u0e31\u0e48\u0e07 backend \u0e44\u0e14\u0e49\u0e14\u0e49\u0e27\u0e22 \u0e14\u0e49\u0e27\u0e22\u0e01\u0e32\u0e23\u0e17\u0e33\u0e43\u0e19\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30\u0e40\u0e14\u0e35\u0e22\u0e27\u0e01\u0e31\u0e19 \u0e41\u0e04\u0e48\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e44\u0e1b\u0e17\u0e33\u0e43\u0e19 backend\\config\\main.php \u0e41\u0e25\u0e30 backend\\web\\.htaccess \u0e41\u0e17\u0e19 \u0e2b\u0e25\u0e31\u0e07\u0e08\u0e32\u0e01\u0e19\u0e31\u0e49\u0e19\u0e25\u0e2d\u0e07\u0e17\u0e14\u0e2a\u0e2d\u0e1a\u0e14\u0e39<\/p>\n\n\n\n<p>\u0e2b\u0e32\u0e01\u0e43\u0e04\u0e23\u0e43\u0e0a\u0e49\u0e40\u0e1b\u0e47\u0e19 Nginx \u0e43\u0e2b\u0e49\u0e25\u0e2d\u0e07\u0e2b\u0e32\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e14\u0e49\u0e27\u0e22 keyword \u0e27\u0e48\u0e32 &#8220;Yii2 Pretty URL with Nginx&#8221; \u0e08\u0e30\u0e21\u0e35 community \u0e17\u0e35\u0e48\u0e44\u0e14\u0e49\u0e17\u0e33\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e44\u0e27\u0e49<\/p>\n\n\n\n<p>\u0e17\u0e49\u0e32\u0e22\u0e17\u0e35\u0e48\u0e2a\u0e38\u0e14\u0e41\u0e25\u0e49\u0e27 \u0e43\u0e19\u0e1a\u0e17\u0e04\u0e27\u0e32\u0e21\u0e19\u0e35\u0e49\u0e40\u0e23\u0e32\u0e44\u0e14\u0e49\u0e23\u0e39\u0e49\u0e2b\u0e25\u0e31\u0e01\u0e01\u0e32\u0e23\u0e02\u0e2d\u0e07 Controller Action \u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e31\u0e1a\u0e41\u0e15\u0e48\u0e07 Route \u0e40\u0e1a\u0e37\u0e49\u0e2d\u0e07\u0e15\u0e49\u0e19 \u0e40\u0e14\u0e35\u0e4b\u0e22\u0e27\u0e40\u0e23\u0e32\u0e04\u0e48\u0e2d\u0e22 \u0e46 \u0e44\u0e15\u0e48\u0e23\u0e30\u0e14\u0e31\u0e1a\u0e02\u0e36\u0e49\u0e19\u0e44\u0e1b\u0e04\u0e23\u0e31\u0e1a<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0e04\u0e27\u0e32\u0e21\u0e40\u0e14\u0e34\u0e21\u0e15\u0e2d\u0e19\u0e17\u0e35\u0e48\u0e41\u0e25\u0e49\u0e27 \u0e43\u0e04\u0e23\u0e22\u0e31\u0e07\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49 initail project \u0e43\u0e2b\u0e49\u0e44\u0e1b\u0e14\u0e39\u0e1a\u0e17\u0e04\u0e27\u0e32\u0e21\u0e22\u0e49\u0e2d\u0e19\u0e2b\u0e25\u0e31\u0e07\u0e44\u0e14\u0e49\u0e17\u0e35\u0e48 https:\/\/www.bigdata.rmutt.ac.th\/?p=1754 \u0e40\u0e02\u0e49\u0e32\u0e43\u0e08\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07 Controller \u0e41\u0e25\u0e30 Action \u0e08\u0e32\u0e01\u0e23\u0e39\u0e1b\u0e14\u0e49\u0e32\u0e19\u0e1a\u0e19 \u0e43\u0e2b\u0e49\u0e40\u0e23\u0e32\u0e25\u0e2d\u0e07\u0e40\u0e1b\u0e34\u0e14\u0e44\u0e1f\u0e25\u0e4c frontend\\controllers\\SiteController.php \u0e02\u0e36\u0e49\u0e19\u0e21\u0e32 \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e14\u0e39\u0e2b\u0e25\u0e31\u0e01\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19 \u0e2a\u0e31\u0e07\u0e40\u0e01\u0e15\u0e44\u0e14\u0e49\u0e27\u0e48\u0e32\u0e08\u0e30\u0e21\u0e35 function actionXxx() \u0e2d\u0e22\u0e39\u0e48 \u0e40\u0e0a\u0e48\u0e19 actionIndex() \u0e40\u0e1b\u0e47\u0e19\u0e15\u0e49\u0e19 \u0e1b\u0e01\u0e15\u0e34\u0e41\u0e25\u0e49\u0e27 Yii2 \u0e17\u0e33\u0e01\u0e32\u0e23 route \u0e42\u0e14\u0e22\u0e43\u0e0a\u0e49 keyword \u0e02\u0e2d\u0e07 function actionXxx() \u0e40\u0e1b\u0e47\u0e19\u0e2b\u0e25\u0e31\u0e01 (\u0e15\u0e49\u0e2d\u0e07\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e04\u0e33\u0e27\u0e48\u0e32 action \u0e19\u0e33\u0e2b\u0e19\u0e49\u0e32\u0e0a\u0e37\u0e48\u0e2d\u0e02\u0e2d\u0e07 function) \u0e40\u0e0a\u0e48\u0e19 actionIndex() \u0e43\u0e19 SiteController \u0e08\u0e30\u0e16\u0e39\u0e01\u0e40\u0e02\u0e49\u0e32\u0e16\u0e36\u0e07\u0e42\u0e14\u0e22 \/index.php?r=site\/index \u0e16\u0e49\u0e32\u0e40\u0e1b\u0e47\u0e19 index \u0e2d\u0e22\u0e39\u0e48\u0e41\u0e25\u0e49\u0e27 \u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e40\u0e02\u0e49\u0e32\u0e16\u0e36\u0e07\u0e44\u0e14\u0e49\u0e42\u0e14\u0e22\u0e44\u0e21\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e43\u0e2a\u0e48 index \u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21\u0e40\u0e02\u0e49\u0e32\u0e44\u0e1b \u0e2b\u0e23\u0e37\u0e2d\u0e1e\u0e39\u0e14\u0e07\u0e48\u0e32\u0e22 \u0e46 [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":1630,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[15,21],"tags":[13,20,19],"class_list":["post-1845","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development","category-yii2-development","tag-development","tag-web","tag-yii2"],"_links":{"self":[{"href":"https:\/\/www.bigdata.rmutt.ac.th\/index.php?rest_route=\/wp\/v2\/posts\/1845"}],"collection":[{"href":"https:\/\/www.bigdata.rmutt.ac.th\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bigdata.rmutt.ac.th\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bigdata.rmutt.ac.th\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bigdata.rmutt.ac.th\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1845"}],"version-history":[{"count":26,"href":"https:\/\/www.bigdata.rmutt.ac.th\/index.php?rest_route=\/wp\/v2\/posts\/1845\/revisions"}],"predecessor-version":[{"id":1899,"href":"https:\/\/www.bigdata.rmutt.ac.th\/index.php?rest_route=\/wp\/v2\/posts\/1845\/revisions\/1899"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.bigdata.rmutt.ac.th\/index.php?rest_route=\/wp\/v2\/media\/1630"}],"wp:attachment":[{"href":"https:\/\/www.bigdata.rmutt.ac.th\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1845"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bigdata.rmutt.ac.th\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1845"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bigdata.rmutt.ac.th\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1845"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}